[PATCH v2 libinput] touchpad: Only break out of tap FSM for clickpad button presses

Peter Hutterer peter.hutterer at who-t.net
Sun Aug 31 23:15:20 PDT 2014


From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl at gmail.com>

It should be possible to initiate a drag by tapping-drag, but continue
it by pressing a physical button continuing to drag by subsequent finger
motions.

As the generic evdev layer helps us ignore multiple button presses we
can have the tap machine run completely separate from and uneffected by
regular physical button presses, making the tap FSM much simpler than
adding new states for handling button presse life times from outside
of the tap state machine.

A touchpad test is updated to test click while tapping instead of tap
FSM break out. The updated test is re-added but only for clickpads only.

The tap FSM svg is updated to say "clickpad button press" instead of
"phys button press".

Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Changes to v1:
- don't call touchpad_1fg_tap_click for LITEST_CLICKPAD
- add new touchpad_2fg_tap_click test, rename existing into
  clickpad_2fg_tap_click
- add an extra libinput_dispatch() before waiting for the tap timeout in 
touchpad_1fg_tap_click. This one took me a while and I'm still not 100%
what exactly is happening and why it's not happening consistently.

The tap code sets a timer on release for the button release event (if the
timeout hits, a button release event triggers). This is for the tap-and-drag
feature.

In v1, the code was:
    touch down, touch up
    button press, button release
    msleep()
    libinput_dispatch()
    check for button events, with more libinput_dispatch() calls

the first dispatch handles the tap events, sets a timer for the past (we
already mslept past the tap timeout) the timer, handles the button events and
finishes.

In 1 out of 5-10 cases, the timer expiry didn't trigger (poll returns 0) in 
subsequent libinput_dispatch() calls. I had it consistently for one device
(semi-mt) but as I changed the msleep value it would happen for other
devices instead (synaptics ST most prominently).

I'm not sure what exactly happens here but one thing it did show
up was that we are susceptible to a caller issuing libinput_dispatch() at
the right time. That's a potential source for heisenbugs.
It also means that slow callers will receive events out of order. dispatch
processes everything, so an event that has been waiting on the device for
200ms may be processed after the timer that expired 1ms ago. unless epoll
orders the return values by incoming time, but the man page doesn't suggest
so.


 doc/touchpad-tap-state-machine.svg | 1134 ++++++++++++++++++------------------
 src/evdev-mt-touchpad-tap.c        |    5 +-
 test/touchpad.c                    |   85 ++-
 3 files changed, 651 insertions(+), 573 deletions(-)

diff --git a/doc/touchpad-tap-state-machine.svg b/doc/touchpad-tap-state-machine.svg
index 10739c6..7aecefc 100644
--- a/doc/touchpad-tap-state-machine.svg
+++ b/doc/touchpad-tap-state-machine.svg
@@ -2,755 +2,755 @@
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2302px" height="3014px" version="1.1">
   <defs/>
   <g transform="translate(0.5,0.5)">
-    <path d="M 1464 1347 L 2197 890" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2201 888 L 2197 894 L 2197 890 L 2194 888 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1351 332 L 2197 825" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2201 828 L 2193 828 L 2197 825 L 2197 822 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 901 1878 L 929 1926" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 932 1931 L 925 1927 L 929 1926 L 931 1923 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1310" cy="32" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1310" y="36">IDLE</text>
+      <text x="1312" y="39">IDLE</text>
     </g>
-    <rect x="1252" y="292" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <rect x="1254" y="295" 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="1317" y="316">TOUCH</text>
+      <text x="1319" y="319">TOUCH</text>
     </g>
-    <path d="M 1286 107 C 1289 104 1293 102 1297 102 L 1331 102 C 1335 102 1339 104 1342 107 L 1362 130 C 1363 131 1363 133 1362 134 L 1342 157 C 1339 160 1335 162 1331 162 L 1297 162 C 1293 162 1289 160 1286 157 L 1266 134 C 1266 133 1266 131 1266 130 L 1286 107 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1314" y="129">first</text>
-      <text x="1314" y="143">finger down</text>
+      <text x="1316" y="132">first</text>
+      <text x="1316" y="146">finger down</text>
     </g>
-    <path d="M 1311 62 L 1313 96" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1313 101 L 1309 94 L 1313 96 L 1316 94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1016 407 C 1019 404 1023 402 1027 402 L 1061 402 C 1065 402 1069 404 1072 407 L 1092 430 C 1093 431 1093 433 1092 434 L 1072 457 C 1069 460 1065 462 1061 462 L 1027 462 C 1023 462 1019 460 1016 457 L 996 434 C 996 433 996 431 996 430 L 1016 407 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1044" y="436">finger up</text>
+      <text x="1046" y="439">finger up</text>
     </g>
-    <path d="M 1272 332 L 1098 408" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1094 410 L 1099 404 L 1098 408 L 1101 411 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1014 722 C 1015 721 1015 719 1016 718 C 1017 718 1018 717 1019 717 L 1088 717 C 1089 717 1091 718 1092 719 C 1093 720 1093 721 1093 722 L 1074 772 C 1073 773 1072 775 1072 776 C 1071 776 1070 777 1069 777 L 999 777 C 998 777 997 776 996 775 C 995 774 995 773 995 772 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1044" y="744">button 1</text>
-      <text x="1044" y="758">press</text>
+      <text x="1046" y="747">button 1</text>
+      <text x="1046" y="761">press</text>
     </g>
-    <path d="M 1564 407 C 1566 404 1570 402 1575 402 L 1608 402 C 1613 402 1617 404 1619 407 L 1639 430 C 1640 431 1640 433 1639 434 L 1619 457 C 1617 460 1613 462 1608 462 L 1575 462 C 1570 462 1566 460 1564 457 L 1544 434 C 1543 433 1543 431 1544 430 L 1564 407 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1592" y="436">timeout</text>
+      <text x="1593" y="439">timeout</text>
     </g>
-    <path d="M 1363 332 L 1537 408" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1542 410 L 1534 411 L 1537 408 L 1537 404 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1383 407 C 1385 404 1389 402 1394 402 L 1427 402 C 1432 402 1436 404 1438 407 L 1458 430 C 1459 431 1459 433 1458 434 L 1438 457 C 1436 460 1432 462 1427 462 L 1394 462 C 1389 462 1385 460 1383 457 L 1363 434 C 1362 433 1362 431 1363 430 L 1383 407 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1411" y="429">move > </text>
-      <text x="1411" y="443">threshold</text>
+      <text x="1413" y="432">move > </text>
+      <text x="1413" y="446">threshold</text>
     </g>
-    <path d="M 1333 332 L 1383 397" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1386 401 L 1379 398 L 1383 397 L 1385 393 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1194 407 C 1196 404 1200 402 1205 402 L 1238 402 C 1243 402 1247 404 1249 407 L 1269 430 C 1270 431 1270 433 1269 434 L 1249 457 C 1247 460 1243 462 1238 462 L 1205 462 C 1200 462 1196 460 1194 457 L 1174 434 C 1173 433 1173 431 1174 430 L 1194 407 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1222" y="429">second</text>
-      <text x="1222" y="443">finger down</text>
+      <text x="1224" y="432">second</text>
+      <text x="1224" y="446">finger down</text>
     </g>
-    <path d="M 1301 332 L 1249 397" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1246 401 L 1248 393 L 1249 397 L 1253 398 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1397" y="847" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1462" y="871">TOUCH_2</text>
+      <text x="1464" y="874">TOUCH_2</text>
     </g>
-    <path d="M 1307 982 C 1310 979 1314 977 1318 977 L 1352 977 C 1356 977 1360 979 1363 982 L 1383 1005 C 1384 1006 1384 1008 1383 1009 L 1363 1032 C 1360 1035 1356 1037 1352 1037 L 1318 1037 C 1314 1037 1310 1035 1307 1032 L 1287 1009 C 1287 1008 1287 1006 1287 1005 L 1307 982 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1335" y="1004">second</text>
-      <text x="1335" y="1018">finger up</text>
+      <text x="1337" y="1007">second</text>
+      <text x="1337" y="1021">finger up</text>
     </g>
-    <path d="M 1444 887 L 1366 972" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1363 976 L 1365 969 L 1366 972 L 1370 973 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1155 642 C 1156 641 1156 639 1157 638 C 1158 638 1159 637 1160 637 L 1229 637 C 1230 637 1232 638 1233 639 C 1234 640 1234 641 1234 642 L 1215 692 C 1214 693 1213 695 1213 696 C 1212 696 1211 697 1210 697 L 1140 697 C 1139 697 1138 696 1137 695 C 1136 694 1136 693 1136 692 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1185" y="664">button 2</text>
-      <text x="1185" y="678">press</text>
+      <text x="1187" y="667">button 2</text>
+      <text x="1187" y="681">press</text>
     </g>
-    <path d="M 1557 962 C 1559 959 1563 957 1568 957 L 1601 957 C 1606 957 1610 959 1612 962 L 1632 985 C 1633 986 1633 988 1632 989 L 1612 1012 C 1610 1015 1606 1017 1601 1017 L 1568 1017 C 1563 1017 1559 1015 1557 1012 L 1537 989 C 1536 988 1536 986 1537 985 L 1557 962 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1585" y="984">move > </text>
-      <text x="1585" y="998">threshold</text>
+      <text x="1586" y="987">move > </text>
+      <text x="1586" y="1001">threshold</text>
     </g>
-    <path d="M 1683 902 C 1685 899 1689 897 1694 897 L 1727 897 C 1732 897 1736 899 1738 902 L 1758 925 C 1759 926 1759 928 1758 929 L 1738 952 C 1736 955 1732 957 1727 957 L 1694 957 C 1689 957 1685 955 1683 952 L 1663 929 C 1662 928 1662 926 1663 925 L 1683 902 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1711" y="931">timeout</text>
+      <text x="1713" y="934">timeout</text>
     </g>
-    <path d="M 1527 883 L 1656 914" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1661 915 L 1653 917 L 1656 914 L 1655 910 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1482 887 L 1549 953" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1553 956 L 1546 954 L 1549 953 L 1551 949 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1106 1142 C 1106 1141 1107 1139 1108 1138 C 1109 1138 1110 1137 1111 1137 L 1179 1137 C 1181 1137 1182 1138 1183 1139 C 1184 1140 1184 1141 1184 1142 L 1165 1192 C 1165 1193 1164 1195 1163 1196 C 1162 1196 1161 1197 1160 1197 L 1091 1197 C 1089 1197 1088 1196 1087 1195 C 1087 1194 1086 1193 1087 1192 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1136" y="1164">button 1</text>
-      <text x="1136" y="1178">release</text>
+      <text x="1138" y="1167">button 1</text>
+      <text x="1138" y="1181">release</text>
     </g>
-    <path d="M 1165 547 C 1165 546 1166 544 1167 543 C 1168 543 1169 542 1170 542 L 1238 542 C 1240 542 1241 543 1242 544 C 1243 545 1243 546 1243 547 L 1224 597 C 1224 598 1223 600 1222 601 C 1221 601 1220 602 1219 602 L 1150 602 C 1148 602 1147 601 1146 600 C 1146 599 1145 598 1146 597 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1194" y="569">button 2</text>
-      <text x="1194" y="583">release</text>
+      <text x="1197" y="572">button 2</text>
+      <text x="1197" y="586">release</text>
     </g>
-    <path d="M 1299 778 L 1221 701" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1217 698 L 1224 700 L 1221 701 L 1219 705 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1188 637 L 1191 608" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1191 603 L 1194 610 L 1191 608 L 1187 610 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="979" y="917" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1044" y="941">TAPPED</text>
+      <text x="1046" y="944">TAPPED</text>
     </g>
-    <path d="M 1108 1042 C 1111 1039 1115 1037 1119 1037 L 1153 1037 C 1157 1037 1161 1039 1164 1042 L 1184 1065 C 1185 1066 1185 1068 1184 1069 L 1164 1092 C 1161 1095 1157 1097 1153 1097 L 1119 1097 C 1115 1097 1111 1095 1108 1092 L 1088 1069 C 1088 1068 1088 1066 1088 1065 L 1108 1042 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1136" y="1071">timeout</text>
+      <text x="1138" y="1074">timeout</text>
     </g>
-    <path d="M 1058 957 L 1111 1032" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1114 1036 L 1107 1032 L 1111 1032 L 1113 1028 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 953 1012 C 955 1009 959 1007 964 1007 L 997 1007 C 1002 1007 1006 1009 1008 1012 L 1028 1035 C 1029 1036 1029 1038 1028 1039 L 1008 1062 C 1006 1065 1002 1067 997 1067 L 964 1067 C 959 1067 955 1065 953 1062 L 933 1039 C 932 1038 932 1036 933 1035 L 953 1012 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="981" y="1034">first</text>
-      <text x="981" y="1048">finger down</text>
+      <text x="983" y="1037">first</text>
+      <text x="983" y="1051">finger down</text>
     </g>
-    <path d="M 1031 957 L 1003 1002" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1000 1006 L 1001 998 L 1003 1002 L 1007 1002 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="410" y="1487" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="475" y="1511">DRAGGING</text>
+      <text x="477" y="1514">DRAGGING</text>
     </g>
-    <path d="M 304 1617 C 307 1614 311 1612 315 1612 L 349 1612 C 353 1612 357 1614 360 1617 L 380 1640 C 381 1641 381 1643 380 1644 L 360 1667 C 357 1670 353 1672 349 1672 L 315 1672 C 311 1672 307 1670 304 1667 L 284 1644 C 284 1643 284 1641 284 1640 L 304 1617 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="332" y="1639">first</text>
-      <text x="332" y="1653">finger up</text>
+      <text x="334" y="1642">first</text>
+      <text x="334" y="1656">finger up</text>
     </g>
-    <path d="M 483 1959 C 484 1958 484 1956 485 1955 C 486 1955 487 1954 488 1954 L 557 1954 C 558 1954 560 1955 561 1956 C 562 1957 562 1958 562 1959 L 543 2009 C 542 2010 541 2012 541 2013 C 540 2013 539 2014 538 2014 L 468 2014 C 467 2014 466 2013 465 2012 C 464 2011 464 2010 464 2009 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="513" y="1981">btn1</text>
-      <text x="513" y="1995">release</text>
+      <text x="515" y="1984">btn1</text>
+      <text x="515" y="1998">release</text>
     </g>
-    <path d="M 454 1527 L 368 1608" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 365 1611 L 367 1604 L 368 1608 L 372 1609 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1044 777 L 1044 911" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1044 916 L 1041 909 L 1044 911 L 1048 909 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1136 1097 L 1136 1131" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1136 1136 L 1132 1129 L 1136 1131 L 1139 1129 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1921" cy="810" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1921" y="814">IDLE</text>
+      <text x="1923" y="817">IDLE</text>
     </g>
-    <path d="M 1441 998 C 1443 995 1447 993 1452 993 L 1485 993 C 1490 993 1494 995 1496 998 L 1516 1021 C 1517 1022 1517 1024 1516 1025 L 1496 1048 C 1494 1051 1490 1053 1485 1053 L 1452 1053 C 1447 1053 1443 1051 1441 1048 L 1421 1025 C 1420 1024 1420 1022 1421 1021 L 1441 998 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1469" y="1020">third</text>
-      <text x="1469" y="1034">finger down</text>
+      <text x="1471" y="1023">third</text>
+      <text x="1471" y="1037">finger down</text>
     </g>
-    <path d="M 1463 887 L 1467 987" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1467 992 L 1463 985 L 1467 987 L 1470 985 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1366" y="1347" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1431" y="1371">TOUCH_3</text>
+      <text x="1433" y="1374">TOUCH_3</text>
     </g>
-    <path d="M 1439 1250 L 1433 1341" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1433 1346 L 1430 1339 L 1433 1341 L 1437 1339 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1287 1853 C 1288 1852 1288 1850 1289 1849 C 1290 1849 1291 1848 1292 1848 L 1361 1848 C 1362 1848 1364 1849 1365 1850 C 1366 1851 1366 1852 1366 1853 L 1347 1903 C 1346 1904 1345 1906 1345 1907 C 1344 1907 1343 1908 1342 1908 L 1272 1908 C 1271 1908 1270 1907 1269 1906 C 1268 1905 1268 1904 1268 1903 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1317" y="1875">button 3</text>
-      <text x="1317" y="1889">press</text>
+      <text x="1319" y="1878">button 3</text>
+      <text x="1319" y="1892">press</text>
     </g>
-    <path d="M 1287 1950 C 1288 1949 1288 1947 1289 1946 C 1290 1946 1291 1945 1292 1945 L 1361 1945 C 1362 1945 1364 1946 1365 1947 C 1366 1948 1366 1949 1366 1950 L 1347 2000 C 1346 2001 1345 2003 1345 2004 C 1344 2004 1343 2005 1342 2005 L 1272 2005 C 1271 2005 1270 2004 1269 2003 C 1268 2002 1268 2001 1268 2000 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1317" y="1972">button 3</text>
-      <text x="1317" y="1986">release</text>
+      <text x="1319" y="1975">button 3</text>
+      <text x="1319" y="1989">release</text>
     </g>
-    <path d="M 1317 1908 L 1317 1939" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1317 1944 L 1314 1937 L 1317 1939 L 1321 1937 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1490 1537 C 1493 1534 1497 1532 1501 1532 L 1535 1532 C 1539 1532 1543 1534 1546 1537 L 1566 1560 C 1567 1561 1567 1563 1566 1564 L 1546 1587 C 1543 1590 1539 1592 1535 1592 L 1501 1592 C 1497 1592 1493 1590 1490 1587 L 1470 1564 C 1470 1563 1470 1561 1470 1560 L 1490 1537 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1518" y="1559">move > </text>
-      <text x="1518" y="1573">threshold</text>
+      <text x="1520" y="1562">move > </text>
+      <text x="1520" y="1576">threshold</text>
     </g>
-    <path d="M 1440 1387 L 1502 1526" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1504 1531 L 1498 1526 L 1502 1526 L 1505 1523 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="665" cy="1999" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="665" y="2003">IDLE</text>
+      <text x="667" y="2006">IDLE</text>
     </g>
-    <path d="M 1619 1527 C 1621 1524 1625 1522 1630 1522 L 1663 1522 C 1668 1522 1672 1524 1674 1527 L 1694 1550 C 1695 1551 1695 1553 1694 1554 L 1674 1577 C 1672 1580 1668 1582 1663 1582 L 1630 1582 C 1625 1582 1621 1580 1619 1577 L 1599 1554 C 1598 1553 1598 1551 1599 1550 L 1619 1527 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1647" y="1556">timeout</text>
+      <text x="1649" y="1559">timeout</text>
     </g>
-    <path d="M 1455 1387 L 1607 1518" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1611 1521 L 1603 1519 L 1607 1518 L 1608 1514 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1176 962 C 1178 959 1182 957 1187 957 L 1220 957 C 1225 957 1229 959 1231 962 L 1251 985 C 1252 986 1252 988 1251 989 L 1231 1012 C 1229 1015 1225 1017 1220 1017 L 1187 1017 C 1182 1017 1178 1015 1176 1012 L 1156 989 C 1155 988 1155 986 1156 985 L 1176 962 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1204" y="984">first</text>
-      <text x="1204" y="998">finger up</text>
+      <text x="1206" y="987">first</text>
+      <text x="1206" y="1001">finger up</text>
     </g>
-    <path d="M 1419 887 L 1258 962" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1253 964 L 1258 958 L 1258 962 L 1261 964 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1136" cy="1307" rx="49.5" ry="30" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1136" y="1311">IDLE</text>
+      <text x="1138" y="1314">IDLE</text>
     </g>
-    <path d="M 1203 1532 C 1206 1529 1210 1527 1214 1527 L 1248 1527 C 1252 1527 1256 1529 1259 1532 L 1279 1555 C 1280 1556 1280 1558 1279 1559 L 1259 1582 C 1256 1585 1252 1587 1248 1587 L 1214 1587 C 1210 1587 1206 1585 1203 1582 L 1183 1559 C 1183 1558 1183 1556 1183 1555 L 1203 1532 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1231" y="1554">fourth</text>
-      <text x="1231" y="1568">finger down</text>
+      <text x="1233" y="1557">fourth</text>
+      <text x="1233" y="1571">finger down</text>
     </g>
-    <path d="M 1410 1387 L 1267 1523" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1263 1526 L 1266 1519 L 1267 1523 L 1271 1524 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1136 1197 L 1136 1271" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1136 1276 L 1132 1269 L 1136 1271 L 1139 1269 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="651" y="1167" width="209" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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="755" y="1191">DRAGGING_OR_DOUBLETAP</text>
+      <text x="757" y="1194">DRAGGING_OR_DOUBLETAP</text>
     </g>
-    <path d="M 833 1144 L 797 1164" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 792 1166 L 797 1160 L 797 1164 L 800 1166 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 528 1252 C 530 1249 534 1247 539 1247 L 572 1247 C 577 1247 581 1249 583 1252 L 603 1275 C 604 1276 604 1278 603 1279 L 583 1302 C 581 1305 577 1307 572 1307 L 539 1307 C 534 1307 530 1305 528 1302 L 508 1279 C 507 1278 507 1276 508 1275 L 528 1252 Z" fill="#99ffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="556" y="1281">timeout</text>
+      <text x="558" y="1284">timeout</text>
     </g>
-    <path d="M 711 1207 L 610 1253" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 605 1255 L 610 1249 L 610 1253 L 613 1255 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 841 1252 C 844 1249 848 1247 852 1247 L 886 1247 C 890 1247 894 1249 897 1252 L 917 1275 C 918 1276 918 1278 917 1279 L 897 1302 C 894 1305 890 1307 886 1307 L 852 1307 C 848 1307 844 1305 841 1302 L 821 1279 C 821 1278 821 1276 821 1275 L 841 1252 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="869" y="1274">first</text>
-      <text x="869" y="1288">finger up</text>
+      <text x="871" y="1277">first</text>
+      <text x="871" y="1291">finger up</text>
     </g>
-    <path d="M 780 1207 L 826 1243" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 830 1246 L 822 1245 L 826 1243 L 827 1239 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 881 1472 C 882 1471 882 1469 883 1468 C 884 1468 885 1467 886 1467 L 955 1467 C 956 1467 958 1468 959 1469 C 960 1470 960 1471 960 1472 L 941 1522 C 940 1523 939 1525 939 1526 C 938 1526 937 1527 936 1527 L 866 1527 C 865 1527 864 1526 863 1525 C 862 1524 862 1523 862 1522 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="911" y="1494">button 1</text>
-      <text x="911" y="1508">release</text>
+      <text x="913" y="1497">button 1</text>
+      <text x="913" y="1511">release</text>
     </g>
-    <path d="M 881 1552 C 882 1551 882 1549 883 1548 C 884 1548 885 1547 886 1547 L 955 1547 C 956 1547 958 1548 959 1549 C 960 1550 960 1551 960 1552 L 941 1602 C 940 1603 939 1605 939 1606 C 938 1606 937 1607 936 1607 L 866 1607 C 865 1607 864 1606 863 1605 C 862 1604 862 1603 862 1602 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="911" y="1574">button 1</text>
-      <text x="911" y="1588">press</text>
+      <text x="913" y="1577">button 1</text>
+      <text x="913" y="1591">press</text>
     </g>
-    <path d="M 888 1642 C 888 1641 889 1639 890 1638 C 891 1638 892 1637 893 1637 L 961 1637 C 963 1637 964 1638 965 1639 C 966 1640 966 1641 966 1642 L 947 1692 C 947 1693 946 1695 945 1696 C 944 1696 943 1697 942 1697 L 873 1697 C 871 1697 870 1696 869 1695 C 869 1694 868 1693 869 1692 Z" fill="#ff6666" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="918" y="1664">btn1</text>
-      <text x="918" y="1678">release</text>
+      <text x="920" y="1667">btn1</text>
+      <text x="920" y="1681">release</text>
     </g>
-    <path d="M 900 1420 L 910 1461" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 911 1466 L 906 1460 L 910 1461 L 913 1458 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 911 1527 L 911 1541" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 911 1546 L 908 1539 L 911 1541 L 915 1539 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 913 1607 L 915 1631" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 915 1636 L 911 1629 L 915 1631 L 918 1629 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 895 1697 L 691 1964" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 688 1968 L 689 1960 L 691 1964 L 695 1965 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 683 1252 C 685 1249 689 1247 694 1247 L 727 1247 C 732 1247 736 1249 738 1252 L 758 1275 C 759 1276 759 1278 758 1279 L 738 1302 C 736 1305 732 1307 727 1307 L 694 1307 C 689 1307 685 1305 683 1302 L 663 1279 C 662 1278 662 1276 663 1275 L 683 1252 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="711" y="1274">second</text>
-      <text x="711" y="1288">finger down</text>
+      <text x="712" y="1277">second</text>
+      <text x="712" y="1291">finger down</text>
     </g>
-    <path d="M 745 1207 L 728 1241" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 726 1246 L 726 1238 L 728 1241 L 732 1241 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 353 1252 C 355 1249 359 1247 364 1247 L 397 1247 C 402 1247 406 1249 408 1252 L 428 1275 C 429 1276 429 1278 428 1279 L 408 1302 C 406 1305 402 1307 397 1307 L 364 1307 C 359 1307 355 1305 353 1302 L 333 1279 C 332 1278 332 1276 333 1275 L 353 1252 Z" fill="#67ab9f" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="381" y="1274">move > </text>
-      <text x="381" y="1288">threshold</text>
+      <text x="383" y="1277">move > </text>
+      <text x="383" y="1291">threshold</text>
     </g>
-    <path d="M 672 1207 L 435 1264" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 430 1265 L 436 1260 L 435 1264 L 438 1267 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 487 1413 L 478 1481" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 478 1486 L 475 1479 L 478 1481 L 482 1479 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1452" y="577" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1517" y="601">HOLD</text>
+      <text x="1519" y="604">HOLD</text>
     </g>
-    <path d="M 1675 705 C 1678 702 1682 700 1686 700 L 1720 700 C 1724 700 1728 702 1731 705 L 1751 728 C 1752 729 1752 731 1751 732 L 1731 755 C 1728 758 1724 760 1720 760 L 1686 760 C 1682 760 1678 758 1675 755 L 1655 732 C 1655 731 1655 729 1655 728 L 1675 705 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1703" y="727">first</text>
-      <text x="1703" y="741">finger up</text>
+      <text x="1705" y="730">first</text>
+      <text x="1705" y="744">finger up</text>
     </g>
-    <path d="M 1545 617 L 1656 696" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1660 699 L 1652 698 L 1656 696 L 1656 692 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1844 807 L 1866 808" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1871 808 L 1864 811 L 1866 808 L 1864 804 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1460 672 C 1462 669 1466 667 1471 667 L 1504 667 C 1509 667 1513 669 1515 672 L 1535 695 C 1536 696 1536 698 1535 699 L 1515 722 C 1513 725 1509 727 1504 727 L 1471 727 C 1466 727 1462 725 1460 722 L 1440 699 C 1439 698 1439 696 1440 695 L 1460 672 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1488" y="694">second</text>
-      <text x="1488" y="708">finger down</text>
+      <text x="1490" y="697">second</text>
+      <text x="1490" y="711">finger down</text>
     </g>
-    <path d="M 1511 617 L 1498 661" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1497 666 L 1495 658 L 1498 661 L 1502 660 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1467 818 L 1464 841" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1464 846 L 1461 839 L 1464 841 L 1468 839 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1383 670 L 1475 620" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1479 618 L 1475 624 L 1475 620 L 1471 618 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1793" y="1117" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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="1858" y="1141">TOUCH_2_HOLD</text>
+      <text x="1860" y="1144">TOUCH_2_HOLD</text>
     </g>
-    <path d="M 1973 1222 C 1976 1219 1980 1217 1984 1217 L 2018 1217 C 2022 1217 2026 1219 2029 1222 L 2049 1245 C 2049 1246 2049 1248 2049 1249 L 2029 1272 C 2026 1275 2022 1277 2018 1277 L 1984 1277 C 1980 1277 1976 1275 1973 1272 L 1953 1249 C 1952 1248 1952 1246 1953 1245 L 1973 1222 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="2001" y="1244">second</text>
-      <text x="2001" y="1258">finger up</text>
+      <text x="2003" y="1247">second</text>
+      <text x="2003" y="1261">finger up</text>
     </g>
-    <path d="M 1884 1157 L 1957 1213" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1961 1216 L 1953 1215 L 1957 1213 L 1958 1209 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1668 1227 C 1671 1224 1675 1222 1679 1222 L 1713 1222 C 1717 1222 1721 1224 1724 1227 L 1744 1250 C 1745 1251 1745 1253 1744 1254 L 1724 1277 C 1721 1280 1717 1282 1713 1282 L 1679 1282 C 1675 1282 1671 1280 1668 1277 L 1648 1254 C 1648 1253 1648 1251 1648 1250 L 1668 1227 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1696" y="1249">first</text>
-      <text x="1696" y="1263">finger up</text>
+      <text x="1698" y="1252">first</text>
+      <text x="1698" y="1266">finger up</text>
     </g>
-    <path d="M 1830 1157 L 1744 1218" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1739 1221 L 1743 1214 L 1744 1218 L 1747 1220 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1982 873 L 1982 607 Q 1982 597 1972 597 L 1588 597" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1583 597 L 1590 594 L 1588 597 L 1590 601 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1642 1083 L 1642 607 Q 1642 597 1632 597 L 1588 597" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1583 597 L 1590 594 L 1588 597 L 1590 601 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1814 1232 C 1817 1229 1821 1227 1825 1227 L 1859 1227 C 1863 1227 1867 1229 1870 1232 L 1890 1255 C 1890 1256 1890 1258 1890 1259 L 1870 1282 C 1867 1285 1863 1287 1859 1287 L 1825 1287 C 1821 1287 1817 1285 1814 1282 L 1794 1259 C 1793 1258 1793 1256 1794 1255 L 1814 1232 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1842" y="1254">third</text>
-      <text x="1842" y="1268">finger down</text>
+      <text x="1844" y="1257">third</text>
+      <text x="1844" y="1271">finger down</text>
     </g>
-    <path d="M 1856 1157 L 1847 1221" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1846 1226 L 1844 1218 L 1847 1221 L 1850 1219 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1567 1352 L 1503 1359" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1498 1360 L 1504 1356 L 1503 1359 L 1505 1363 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1568 1984 L 2062 1984 Q 2072 1984 2072 1974 L 2072 1147 Q 2072 1137 2062 1137 L 1930 1137" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1924 1137 L 1931 1134 L 1930 1137 L 1931 1141 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="1532" y="2224" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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="1597" y="2248">TOUCH_3_HOLD</text>
+      <text x="1599" y="2251">TOUCH_3_HOLD</text>
     </g>
-    <path d="M 1589 1824 L 1597 2218" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1597 2223 L 1593 2216 L 1597 2218 L 1600 2216 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1293 2362 C 1296 2359 1300 2357 1304 2357 L 1338 2357 C 1342 2357 1346 2359 1349 2362 L 1369 2385 C 1370 2386 1370 2388 1369 2389 L 1349 2412 C 1346 2415 1342 2417 1338 2417 L 1304 2417 C 1300 2417 1296 2415 1293 2412 L 1273 2389 C 1273 2388 1273 2386 1273 2385 L 1293 2362 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1321" y="2384">fourth</text>
-      <text x="1321" y="2398">finger down</text>
+      <text x="1323" y="2387">fourth</text>
+      <text x="1323" y="2401">finger down</text>
     </g>
-    <rect x="1052" y="2482" width="130" height="40" rx="2" ry="2" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
+    <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="1117" y="2506">DEAD</text>
+      <text x="1119" y="2509">DEAD</text>
     </g>
-    <path d="M 1558 2264 L 1375 2359" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1370 2361 L 1375 2355 L 1375 2359 L 1378 2361 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1273 2414 L 1158 2479" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1153 2481 L 1158 2475 L 1158 2479 L 1161 2481 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1227 1587 L 1120 2476" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1120 2481 L 1117 2474 L 1120 2476 L 1124 2474 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1033 2577 C 1036 2574 1040 2572 1044 2572 L 1078 2572 C 1082 2572 1086 2574 1089 2577 L 1109 2600 C 1110 2601 1110 2603 1109 2604 L 1089 2627 C 1086 2630 1082 2632 1078 2632 L 1044 2632 C 1040 2632 1036 2630 1033 2627 L 1013 2604 C 1013 2603 1013 2601 1013 2600 L 1033 2577 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1061" y="2606">any finger up</text>
+      <text x="1063" y="2609">any finger up</text>
     </g>
-    <path d="M 1176 2606 C 1178 2603 1182 2601 1187 2601 L 1220 2601 C 1225 2601 1229 2603 1231 2606 L 1251 2629 C 1252 2630 1252 2632 1251 2633 L 1231 2656 C 1229 2659 1225 2661 1220 2661 L 1187 2661 C 1182 2661 1178 2659 1176 2656 L 1156 2633 C 1155 2632 1155 2630 1156 2629 L 1176 2606 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1204" y="2628">fourth</text>
-      <text x="1204" y="2642">finger up</text>
+      <text x="1206" y="2631">fourth</text>
+      <text x="1206" y="2645">finger up</text>
     </g>
-    <path d="M 1356 1537 C 1358 1534 1362 1532 1367 1532 L 1400 1532 C 1405 1532 1409 1534 1411 1537 L 1431 1560 C 1432 1561 1432 1563 1431 1564 L 1411 1587 C 1409 1590 1405 1592 1400 1592 L 1367 1592 C 1362 1592 1358 1590 1356 1587 L 1336 1564 C 1335 1563 1335 1561 1336 1560 L 1356 1537 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1384" y="1566">any finger up</text>
+      <text x="1386" y="1569">any finger up</text>
     </g>
-    <path d="M 1427 1387 L 1392 1526" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1391 1531 L 1389 1523 L 1392 1526 L 1396 1525 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1365 1750 L 1330 1842" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1329 1847 L 1328 1839 L 1330 1842 L 1334 1842 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
-      <rect fill="#ffffff" stroke="none" x="1338" y="1787" width="18" height="27" stroke-width="0"/>
-      <text x="1347" y="1809">yes</text>
-    </g>
-    <path d="M 1589 2332 C 1592 2329 1596 2327 1600 2327 L 1634 2327 C 1638 2327 1642 2329 1645 2332 L 1665 2355 C 1666 2356 1666 2358 1665 2359 L 1645 2382 C 1642 2385 1638 2387 1634 2387 L 1600 2387 C 1596 2387 1592 2385 1589 2382 L 1569 2359 C 1569 2358 1569 2356 1569 2355 L 1589 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="1617" y="2361">any finger up</text>
-    </g>
-    <path d="M 1601 2264 L 1611 2321" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1611 2326 L 1607 2320 L 1611 2321 L 1614 2318 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1956 2352 L 2062 2352 Q 2072 2352 2072 2342 L 2072 1147 Q 2072 1137 2062 1137 L 1930 1137" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1924 1137 L 1931 1134 L 1930 1137 L 1931 1141 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1106 2522 L 1081 2566" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1078 2571 L 1079 2563 L 1081 2566 L 1085 2567 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1130 2522 L 1180 2596" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1183 2600 L 1176 2596 L 1180 2596 L 1182 2592 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <ellipse cx="1124" 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="1124" y="2986">IDLE</text>
-    </g>
-    <path d="M 1119 2822 L 1171 2867 L 1119 2912 L 1068 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="1119" y="2864">if finger</text>
-      <text x="1119" y="2878">count == 0</text>
-    </g>
-    <path d="M 1077 2726 L 1104 2816" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1106 2821 L 1100 2815 L 1104 2816 L 1107 2813 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1193 2661 L 1138 2816" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1136 2821 L 1135 2813 L 1138 2816 L 1141 2816 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1121 2912 L 1123 2946" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1123 2951 L 1119 2944 L 1123 2946 L 1126 2944 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 657 1645 C 659 1642 663 1640 668 1640 L 701 1640 C 706 1640 710 1642 712 1645 L 732 1668 C 733 1669 733 1671 732 1672 L 712 1695 C 710 1698 706 1700 701 1700 L 668 1700 C 663 1700 659 1698 657 1695 L 637 1672 C 636 1671 636 1669 637 1668 L 657 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="685" y="1667">second</text>
-      <text x="685" y="1681">finger up</text>
-    </g>
-    <rect x="597" y="1487" 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="662" y="1511">DRAGGING_2</text>
-    </g>
-    <path d="M 676 1433 L 667 1481" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 666 1486 L 664 1478 L 667 1481 L 671 1480 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 665 1527 L 679 1634" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 680 1639 L 676 1632 L 679 1634 L 683 1631 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 484 1709 C 486 1706 490 1704 495 1704 L 528 1704 C 533 1704 537 1706 539 1709 L 559 1732 C 560 1733 560 1735 559 1736 L 539 1759 C 537 1762 533 1764 528 1764 L 495 1764 C 490 1764 486 1762 484 1759 L 464 1736 C 463 1735 463 1733 464 1732 L 484 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="512" y="1731">first</text>
-      <text x="512" y="1745">finger up</text>
-    </g>
-    <path d="M 649 1527 L 535 1699" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 532 1703 L 533 1695 L 535 1699 L 539 1699 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 492 1610 L 479 1533" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 479 1528 L 483 1534 L 479 1533 L 476 1536 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 638 1726 L 494 1532" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 491 1528 L 498 1531 L 494 1532 L 492 1536 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 371 1739 C 373 1736 377 1734 382 1734 L 415 1734 C 420 1734 424 1736 426 1739 L 446 1762 C 447 1763 447 1765 446 1766 L 426 1789 C 424 1792 420 1794 415 1794 L 382 1794 C 377 1794 373 1792 371 1789 L 351 1766 C 350 1765 350 1763 351 1762 L 371 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="399" y="1761">second</text>
-      <text x="399" y="1775">finger down</text>
-    </g>
-    <path d="M 469 1527 L 409 1728" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 408 1733 L 406 1725 L 409 1728 L 413 1727 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 559 1815 L 653 1533" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 655 1528 L 656 1536 L 653 1533 L 649 1534 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 562 1989 L 609 1993" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 614 1994 L 607 1997 L 609 1993 L 607 1990 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 748 1617 C 750 1614 754 1612 759 1612 L 792 1612 C 797 1612 801 1614 803 1617 L 823 1640 C 824 1641 824 1643 823 1644 L 803 1667 C 801 1670 797 1672 792 1672 L 759 1672 C 754 1672 750 1670 748 1667 L 728 1644 C 727 1643 727 1641 728 1640 L 748 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="776" y="1639">third</text>
-      <text x="776" y="1653">finger down</text>
-    </g>
-    <path d="M 679 1527 L 746 1607" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 750 1611 L 742 1608 L 746 1607 L 748 1604 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 920 1937 C 920 1936 921 1934 922 1933 C 923 1933 924 1932 925 1932 L 993 1932 C 995 1932 996 1933 997 1934 C 998 1935 998 1936 998 1937 L 979 1987 C 979 1988 978 1990 977 1991 C 976 1991 975 1992 974 1992 L 905 1992 C 903 1992 902 1991 901 1990 C 901 1989 900 1988 901 1987 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="950" y="1959">btn1</text>
-      <text x="950" y="1973">release</text>
-    </g>
-    <path d="M 959 1992 L 1109 2476" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1110 2481 L 1105 2475 L 1109 2476 L 1112 2473 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2223 832 C 2225 829 2229 827 2234 827 L 2267 827 C 2272 827 2276 829 2278 832 L 2298 855 C 2299 856 2299 858 2298 859 L 2278 882 C 2276 885 2272 887 2267 887 L 2234 887 C 2229 887 2225 885 2223 882 L 2203 859 C 2202 858 2202 856 2203 855 L 2223 832 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+      <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"/>
     <g fill="#FFFFFF" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2251" y="847">phys</text>
-      <text x="2251" y="861">button</text>
-      <text x="2251" y="875">press</text>
-    </g>
-    <path d="M 1573 617 L 2196 838" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2201 839 L 2193 840 L 2196 838 L 2196 834 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1527 866 L 2196 858" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2201 858 L 2194 861 L 2196 858 L 2194 854 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1886 1117 L 2203 891" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2208 888 L 2204 895 L 2203 891 L 2200 889 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1606 2224 L 2234 893" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2236 888 L 2236 896 L 2234 893 L 2230 893 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2250 2011 L 2250 2492 Q 2250 2502 2240 2502 L 1188 2502" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1183 2502 L 1190 2499 L 1188 2502 L 1190 2506 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1344 62 L 2212 823" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 2215 826 L 2208 824 L 2212 823 L 2213 819 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 23 1202 C 25 1199 29 1197 34 1197 L 67 1197 C 72 1197 76 1199 78 1202 L 98 1225 C 99 1226 99 1228 98 1229 L 78 1252 C 76 1255 72 1257 67 1257 L 34 1257 C 29 1257 25 1255 23 1252 L 3 1229 C 2 1228 2 1226 3 1225 L 23 1202 Z" fill="#000000" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+      <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"/>
     <g fill="#FFFFFF" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="51" y="1217">phys</text>
-      <text x="51" y="1231">button</text>
-      <text x="51" y="1245">press</text>
-    </g>
-    <path d="M 979 956 L 105 1211" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 100 1213 L 106 1207 L 105 1211 L 108 1214 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 41 2027 C 42 2026 42 2024 43 2023 C 44 2023 45 2022 46 2022 L 115 2022 C 116 2022 118 2023 119 2024 C 120 2025 120 2026 120 2027 L 101 2077 C 100 2078 99 2080 99 2081 C 98 2081 97 2082 96 2082 L 26 2082 C 25 2082 24 2081 23 2080 C 22 2079 22 2078 22 2077 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="71" y="2049">button 1</text>
-      <text x="71" y="2063">release</text>
-    </g>
-    <path d="M 51 1257 L 70 2016" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 70 2021 L 67 2014 L 70 2016 L 74 2014 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 651 2281 L 1069 2479" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1074 2482 L 1066 2482 L 1069 2479 L 1069 2475 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 651 1193 L 105 1224" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 100 1224 L 107 1220 L 105 1224 L 107 1227 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 445 1487 L 101 1261" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 97 1258 L 105 1259 L 101 1261 L 101 1264 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 618 1487 L 105 1252" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
-    <path d="M 100 1250 L 108 1249 L 105 1252 L 105 1256 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <rect x="224" y="1839" 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="289" y="1863">DRAGGING_WAIT</text>
-    </g>
-    <path d="M 355 1944 C 358 1941 362 1939 366 1939 L 400 1939 C 404 1939 408 1941 411 1944 L 431 1967 C 432 1968 432 1970 431 1971 L 411 1994 C 408 1997 404 1999 400 1999 L 366 1999 C 362 1999 358 1997 355 1994 L 335 1971 C 335 1970 335 1968 335 1967 L 355 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="383" y="1973">timeout</text>
-    </g>
-    <path d="M 278 1785 L 287 1833" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 288 1838 L 284 1832 L 287 1833 L 290 1830 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 306 1879 L 353 1934" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 356 1938 L 349 1935 L 353 1934 L 355 1931 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 432 1975 L 458 1978" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 463 1978 L 456 1981 L 458 1978 L 456 1974 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 176 1944 C 178 1941 182 1939 187 1939 L 220 1939 C 225 1939 229 1941 231 1944 L 251 1967 C 252 1968 252 1970 251 1971 L 231 1994 C 229 1997 225 1999 220 1999 L 187 1999 C 182 1999 178 1997 176 1994 L 156 1971 C 155 1970 155 1968 156 1967 L 176 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="204" y="1966">first</text>
-      <text x="204" y="1980">finger down</text>
-    </g>
-    <path d="M 273 1879 L 231 1934" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 227 1938 L 229 1930 L 231 1934 L 234 1935 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1263 202 C 1279 208 1296 208 1313 202 C 1329 195 1346 195 1363 202 L 1363 254 C 1346 248 1329 248 1313 254 C 1296 260 1279 260 1263 254 L 1263 202 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="1313" y="232">TOUCH_TOUCH</text>
-    </g>
-    <path d="M 996 591 C 1012 597 1029 597 1046 591 C 1062 584 1079 584 1096 591 L 1096 643 C 1079 637 1062 637 1046 643 C 1029 649 1012 649 996 643 L 996 591 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="621">TOUCH_IDLE</text>
-    </g>
-    <path d="M 1044 462 L 1045 578" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1045 583 L 1042 576 L 1045 578 L 1049 576 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1045 650 L 1044 711" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1044 716 L 1041 709 L 1044 711 L 1048 709 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1314 162 L 1313 189" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1313 194 L 1310 187 L 1313 189 L 1317 187 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1314 261 L 1316 286" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1316 291 L 1312 284 L 1316 286 L 1319 284 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1460 502 C 1476 508 1493 508 1510 502 C 1526 495 1543 495 1560 502 L 1560 554 C 1543 548 1526 548 1510 554 C 1493 560 1476 560 1460 554 L 1460 502 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="1510" y="532">TOUCH_DEAD</text>
-    </g>
-    <path d="M 1441 462 L 1471 491" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1475 495 L 1468 492 L 1471 491 L 1473 487 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1566 462 L 1541 491" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1538 495 L 1540 487 L 1541 491 L 1545 492 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1513 561 L 1514 571" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1515 576 L 1510 569 L 1514 571 L 1517 569 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1197 957 L 1186 911" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1185 906 L 1190 912 L 1186 911 L 1183 914 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1185 805 L 1185 703" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1185 698 L 1188 705 L 1185 703 L 1181 705 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+      <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="11px">
-      <rect fill="#ffffff" stroke="none" x="1176" y="745" width="18" height="14" stroke-width="0"/>
-      <text x="1185" y="755">yes</text>
+      <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 1792 949 C 1808 955 1825 955 1842 949 C 1858 942 1875 942 1892 949 L 1892 1001 C 1875 995 1858 995 1842 1001 C 1825 1007 1808 1007 1792 1001 L 1792 949 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1842" y="979">TOUCH_DEAD</text>
+      <text x="1844" y="982">TOUCH_DEAD</text>
     </g>
-    <path d="M 1848 1073 L 1854 1111" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1855 1116 L 1851 1110 L 1854 1111 L 1857 1108 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1759 945 L 1786 954" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1790 956 L 1783 957 L 1786 954 L 1785 951 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1633 985 L 1785 978" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1790 977 L 1784 981 L 1785 978 L 1783 974 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1943 879 C 1959 885 1976 885 1993 879 C 2009 872 2026 872 2043 879 L 2043 931 C 2026 925 2009 925 1993 931 C 1976 937 1959 937 1943 931 L 1943 879 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1993" y="909">TOUCH_IDLE</text>
+      <text x="1995" y="912">TOUCH_IDLE</text>
     </g>
-    <path d="M 2000 1217 L 1993 944" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1993 939 L 1997 946 L 1993 944 L 1990 946 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1420 759 C 1436 765 1453 765 1470 759 C 1486 752 1503 752 1520 759 L 1520 811 C 1503 805 1486 805 1470 811 C 1453 817 1436 817 1420 811 L 1420 759 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1470" y="789">TOUCH_TOUCH</text>
+      <text x="1472" y="792">TOUCH_TOUCH</text>
     </g>
-    <path d="M 1481 727 L 1477 746" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1476 751 L 1474 744 L 1477 746 L 1481 745 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1243 462 L 1443 747" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1446 752 L 1439 748 L 1443 747 L 1445 744 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1283 671 C 1299 677 1316 677 1333 671 C 1349 664 1366 664 1383 671 L 1383 723 C 1366 717 1349 717 1333 723 C 1316 729 1299 729 1283 723 L 1283 671 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1333" y="701">TOUCH_IDLE</text>
+      <text x="1335" y="704">TOUCH_IDLE</text>
     </g>
-    <path d="M 1228 602 L 1292 660" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1296 664 L 1288 662 L 1292 660 L 1293 656 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1283 784 C 1299 790 1316 790 1333 784 C 1349 777 1366 777 1383 784 L 1383 836 C 1366 830 1349 830 1333 836 C 1316 842 1299 842 1283 836 L 1283 784 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1333" y="814">TOUCH_IDLE</text>
+      <text x="1335" y="817">TOUCH_IDLE</text>
     </g>
-    <path d="M 1335 977 L 1333 849" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1333 844 L 1337 851 L 1333 849 L 1330 851 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1592 1089 C 1608 1095 1625 1095 1642 1089 C 1658 1082 1675 1082 1692 1089 L 1692 1141 C 1675 1135 1658 1135 1642 1141 C 1625 1147 1608 1147 1592 1141 L 1592 1089 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1642" y="1119">TOUCH_IDLE</text>
+      <text x="1644" y="1122">TOUCH_IDLE</text>
     </g>
-    <path d="M 1684 1222 L 1657 1153" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1655 1149 L 1661 1154 L 1657 1153 L 1654 1156 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1567 1321 C 1583 1327 1600 1327 1617 1321 C 1633 1314 1650 1314 1667 1321 L 1667 1373 C 1650 1367 1633 1367 1617 1373 C 1600 1379 1583 1379 1567 1373 L 1567 1321 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1617" y="1351">TOUCH_TOUCH</text>
+      <text x="1619" y="1354">TOUCH_TOUCH</text>
     </g>
-    <path d="M 1793 1276 L 1672 1325" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1668 1327 L 1673 1321 L 1672 1325 L 1675 1327 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1856 2326 C 1872 2332 1889 2332 1906 2326 C 1922 2319 1939 2319 1956 2326 L 1956 2378 C 1939 2372 1922 2372 1906 2378 C 1889 2384 1872 2384 1856 2378 L 1856 2326 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1906" y="2349">that finger</text>
-      <text x="1906" y="2363">TOUCH_IDLE</text>
+      <text x="1908" y="2352">that finger</text>
+      <text x="1908" y="2366">TOUCH_IDLE</text>
     </g>
-    <path d="M 1666 2356 L 1849 2353" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1854 2353 L 1847 2357 L 1849 2353 L 1847 2350 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1539 1661 C 1555 1667 1572 1667 1589 1661 C 1605 1654 1622 1654 1639 1661 L 1639 1713 C 1622 1707 1605 1707 1589 1713 C 1572 1719 1555 1719 1539 1713 L 1539 1661 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1589" y="1691">TOUCH_DEAD</text>
+      <text x="1591" y="1694">TOUCH_DEAD</text>
     </g>
-    <path d="M 1634 1582 L 1605 1649" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1603 1653 L 1602 1646 L 1605 1649 L 1609 1648 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1535 1592 L 1567 1649" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1570 1654 L 1563 1649 L 1567 1649 L 1569 1646 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1384 1592 L 1384 1644" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1384 1649 L 1380 1642 L 1384 1644 L 1387 1642 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1468 1958 C 1484 1964 1501 1964 1518 1958 C 1534 1951 1551 1951 1568 1958 L 1568 2010 C 1551 2004 1534 2004 1518 2010 C 1501 2016 1484 2016 1468 2010 L 1468 1958 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1518" y="1981">that finger</text>
-      <text x="1518" y="1995">TOUCH_IDLE</text>
+      <text x="1520" y="1984">that finger</text>
+      <text x="1520" y="1998">TOUCH_IDLE</text>
     </g>
-    <path d="M 1366 1977 L 1461 1981" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1466 1982 L 1459 1985 L 1461 1981 L 1460 1978 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1407 1750 L 1499 1946" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1502 1950 L 1496 1946 L 1499 1946 L 1502 1943 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1448" y="1845" width="15" height="14" stroke-width="0"/>
-      <text x="1455" y="1854">no</text>
+      <rect fill="#ffffff" stroke="none" x="1450" y="1847" width="14" height="14" stroke-width="0"/>
+      <text x="1457" y="1857">no</text>
     </g>
-    <path d="M 833 1091 C 849 1097 866 1097 883 1091 C 899 1084 916 1084 933 1091 L 933 1143 C 916 1137 899 1137 883 1143 C 866 1149 849 1149 833 1143 L 833 1091 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="883" y="1121">TOUCH_TOUCH</text>
+      <text x="885" y="1124">TOUCH_TOUCH</text>
     </g>
-    <path d="M 944 1067 L 927 1080" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 923 1084 L 926 1077 L 927 1080 L 931 1082 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 843 1361 C 859 1367 877 1367 893 1361 C 909 1355 927 1355 943 1361 L 943 1414 C 927 1408 909 1408 893 1414 C 877 1420 859 1420 843 1414 L 843 1361 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="893" y="1392">TOUCH_IDLE</text>
+      <text x="895" y="1394">TOUCH_IDLE</text>
     </g>
-    <path d="M 878 1307 L 891 1349" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 893 1354 L 887 1348 L 891 1349 L 894 1346 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 633 1374 C 649 1380 666 1380 683 1374 C 699 1367 716 1367 733 1374 L 733 1426 C 716 1420 699 1420 683 1426 C 666 1432 649 1432 633 1426 L 633 1374 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="683" y="1404">TOUCH_TOUCH</text>
+      <text x="685" y="1407">TOUCH_TOUCH</text>
     </g>
-    <path d="M 704 1307 L 691 1361" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 690 1366 L 688 1359 L 691 1361 L 695 1360 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 441 1354 C 457 1360 474 1360 491 1354 C 507 1347 524 1347 541 1354 L 541 1406 C 524 1400 507 1400 491 1406 C 474 1412 457 1412 441 1406 L 441 1354 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="491" y="1384">TOUCH_DEAD</text>
+      <text x="493" y="1387">TOUCH_DEAD</text>
     </g>
-    <path d="M 413 1307 L 451 1343" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 455 1347 L 447 1345 L 451 1343 L 452 1339 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 537 1307 L 514 1342" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 512 1347 L 512 1339 L 514 1342 L 518 1343 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 223 1726 C 239 1732 256 1732 273 1726 C 289 1719 306 1719 323 1726 L 323 1778 C 306 1772 289 1772 273 1778 C 256 1784 239 1784 223 1778 L 223 1726 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="273" y="1756">TOUCH_IDLE</text>
+      <text x="275" y="1759">TOUCH_IDLE</text>
     </g>
-    <path d="M 309 1672 L 276 1714" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 273 1719 L 275 1711 L 276 1714 L 280 1715 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 193 1489 C 209 1495 226 1495 243 1489 C 259 1482 276 1482 293 1489 L 293 1541 C 276 1535 259 1535 243 1541 C 226 1547 209 1547 193 1541 L 193 1489 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="243" y="1519">TOUCH_TOUCH</text>
+      <text x="245" y="1522">TOUCH_TOUCH</text>
     </g>
-    <path d="M 155 1969 L 154 1969 Q 152 1969 152 1959 L 152 1525 Q 152 1515 162 1515 L 186 1515" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 191 1515 L 184 1519 L 186 1515 L 184 1512 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 293 1513 L 404 1509" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 409 1509 L 402 1513 L 404 1509 L 402 1506 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 499 1821 C 515 1827 532 1827 549 1821 C 565 1814 582 1814 599 1821 L 599 1873 C 582 1867 565 1867 549 1873 C 532 1879 515 1879 499 1873 L 499 1821 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="549" y="1851">TOUCH_TOUCH</text>
+      <text x="551" y="1854">TOUCH_TOUCH</text>
     </g>
-    <path d="M 447 1791 L 493 1816" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 498 1819 L 490 1818 L 493 1816 L 493 1812 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 448 1616 C 464 1622 481 1622 498 1616 C 514 1609 531 1609 548 1616 L 548 1668 C 531 1662 514 1662 498 1668 C 481 1674 464 1674 448 1668 L 448 1616 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="498" y="1646">TOUCH_IDLE</text>
+      <text x="500" y="1649">TOUCH_IDLE</text>
     </g>
-    <path d="M 507 1704 L 503 1681" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 503 1676 L 507 1682 L 503 1681 L 500 1683 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 613 1732 C 629 1738 646 1738 663 1732 C 679 1725 696 1725 713 1732 L 713 1784 C 696 1778 679 1778 663 1784 C 646 1790 629 1790 613 1784 L 613 1732 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="663" y="1762">TOUCH_IDLE</text>
+      <text x="665" y="1765">TOUCH_IDLE</text>
     </g>
-    <path d="M 677 1700 L 672 1719" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 671 1724 L 669 1717 L 672 1719 L 676 1718 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 833 1819 C 849 1825 866 1825 883 1819 C 899 1812 916 1812 933 1819 L 933 1871 C 916 1865 899 1865 883 1871 C 866 1877 849 1877 833 1871 L 833 1819 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="883" y="1849">TOUCH_TOUCH</text>
+      <text x="885" y="1852">TOUCH_TOUCH</text>
     </g>
-    <path d="M 791 1672 L 862 1807" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 865 1812 L 858 1807 L 862 1807 L 865 1804 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1744 779 C 1760 785 1777 785 1794 779 C 1810 772 1827 772 1844 779 L 1844 831 C 1827 825 1810 825 1794 831 C 1777 837 1760 837 1744 831 L 1744 779 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1794" y="809">TOUCH_IDLE</text>
+      <text x="1796" y="812">TOUCH_IDLE</text>
     </g>
-    <path d="M 1739 760 L 1749 768" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1753 772 L 1746 770 L 1749 768 L 1750 765 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1392 1191 C 1408 1197 1425 1197 1442 1191 C 1458 1184 1475 1184 1492 1191 L 1492 1243 C 1475 1237 1458 1237 1442 1243 C 1425 1249 1408 1249 1392 1243 L 1392 1191 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1442" y="1221">TOUCH_TOUCH</text>
+      <text x="1444" y="1224">TOUCH_TOUCH</text>
     </g>
-    <path d="M 1464 1053 L 1447 1178" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1446 1183 L 1444 1176 L 1447 1178 L 1451 1177 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1018 2667 C 1034 2673 1051 2673 1068 2667 C 1084 2660 1101 2660 1118 2667 L 1118 2719 C 1101 2713 1084 2713 1068 2719 C 1051 2725 1034 2725 1018 2719 L 1018 2667 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1068" y="2690">that finger</text>
-      <text x="1068" y="2704">TOUCH_IDLE</text>
+      <text x="1070" y="2693">that finger</text>
+      <text x="1070" y="2707">TOUCH_IDLE</text>
     </g>
-    <path d="M 1063 2632 L 1065 2654" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1065 2659 L 1061 2653 L 1065 2654 L 1068 2652 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2200 1851 C 2216 1857 2234 1857 2250 1851 C 2266 1845 2284 1845 2300 1851 L 2300 1904 C 2284 1898 2266 1898 2250 1904 C 2234 1910 2216 1910 2200 1904 L 2200 1851 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2250" y="1882">TOUCH_DEAD</text>
+      <text x="2252" y="1884">TOUCH_DEAD</text>
     </g>
-    <path d="M 2252 887 L 2252 1482 Q 2252 1492 2252 1502 L 2252 1839" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2252 1844 L 2249 1837 L 2252 1839 L 2256 1837 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 2200 1902 C 2216 1908 2233 1908 2250 1902 C 2266 1895 2283 1895 2300 1902 L 2300 1954 C 2283 1948 2266 1948 2250 1954 C 2233 1960 2216 1960 2200 1954 L 2200 1902 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2250" y="1932">TOUCH_DEAD</text>
+      <text x="2252" y="1935">TOUCH_DEAD</text>
     </g>
-    <path d="M 2200 1952 C 2216 1958 2233 1958 2250 1952 C 2266 1945 2283 1945 2300 1952 L 2300 2004 C 2283 1998 2266 1998 2250 2004 C 2233 2010 2216 2010 2200 2004 L 2200 1952 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="2250" y="1982">TOUCH_DEAD</text>
+      <text x="2252" y="1985">TOUCH_DEAD</text>
     </g>
-    <path d="M 283 2132 C 299 2138 317 2138 333 2132 C 349 2126 367 2126 383 2132 L 383 2185 C 367 2179 349 2179 333 2185 C 317 2191 299 2191 283 2185 L 283 2132 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="333" y="2163">TOUCH_DEAD</text>
+      <text x="335" y="2165">TOUCH_DEAD</text>
     </g>
-    <path d="M 120 2072 L 277 2136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 282 2138 L 274 2138 L 277 2136 L 277 2132 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 426 2186 C 442 2192 459 2192 476 2186 C 492 2179 509 2179 526 2186 L 526 2238 C 509 2232 492 2232 476 2238 C 459 2244 442 2244 426 2238 L 426 2186 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="476" y="2216">TOUCH_DEAD</text>
+      <text x="478" y="2219">TOUCH_DEAD</text>
     </g>
-    <path d="M 383 2177 L 420 2191" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 424 2193 L 417 2194 L 420 2191 L 419 2187 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 551 2231 C 567 2237 584 2237 601 2231 C 617 2224 634 2224 651 2231 L 651 2283 C 634 2277 617 2277 601 2283 C 584 2289 567 2289 551 2283 L 551 2231 Z" fill="#ffb570" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="601" y="2261">TOUCH_DEAD</text>
+      <text x="603" y="2264">TOUCH_DEAD</text>
     </g>
-    <path d="M 526 2230 L 545 2237" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 549 2239 L 542 2240 L 545 2237 L 544 2233 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1185 805 L 1248 855 L 1185 905 L 1121 855 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1185" y="852">state ==</text>
-      <text x="1185" y="866">TOUCH_TOUCH</text>
+      <text x="1187" y="855">state ==</text>
+      <text x="1187" y="869">TOUCH_TOUCH</text>
     </g>
-    <path d="M 1384 1650 L 1447 1700 L 1384 1750 L 1320 1700 Z" fill="#e1d5e7" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1384" y="1697">that finger state ==</text>
-      <text x="1384" y="1711">TOUCH_TOUCH</text>
+      <text x="1386" y="1700">that finger state ==</text>
+      <text x="1386" y="1714">TOUCH_TOUCH</text>
     </g>
-    <path d="M 1231 805 L 1298 734" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1301 730 L 1299 738 L 1298 734 L 1294 733 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1260" y="761" width="15" height="14" stroke-width="0"/>
-      <text x="1267" y="771">no</text>
+      <rect fill="#ffffff" stroke="none" x="1262" y="764" width="14" height="14" stroke-width="0"/>
+      <text x="1269" y="773">no</text>
     </g>
-    <path d="M 1794 1014 C 1810 1020 1827 1020 1844 1014 C 1860 1007 1877 1007 1894 1014 L 1894 1066 C 1877 1060 1860 1060 1844 1066 C 1827 1072 1810 1072 1794 1066 L 1794 1014 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1844" y="1044">TOUCH_DEAD</text>
+      <text x="1846" y="1047">TOUCH_DEAD</text>
     </g>
-    <path d="M 1843 1008 L 1843 1008" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1843 1008 L 1843 1008 L 1843 1008 L 1843 1008 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
-    <path d="M 1539 1713 C 1555 1719 1572 1719 1589 1713 C 1605 1706 1622 1706 1639 1713 L 1639 1765 C 1622 1759 1605 1759 1589 1765 C 1572 1771 1555 1771 1539 1765 L 1539 1713 Z" fill="#7ea6e0" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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"/>
     <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
-      <text x="1589" y="1743">TOUCH_DEAD</text>
+      <text x="1591" y="1746">TOUCH_DEAD</text>
     </g>
-    <path d="M 1539 1765 C 1555 1771 1572 1771 1589 1765 C 1605 1758 1622 1758 1639 1765 L 1639 1817 C 1622 1811 1605 1811 1589 1817 C 1572 1823 1555 1823 1539 1817 L 1539 1765 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
+    <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="1589" y="1795">TOUCH_DEAD</text>
+      <text x="1591" y="1798">TOUCH_DEAD</text>
     </g>
   </g>
 </svg>
diff --git a/src/evdev-mt-touchpad-tap.c b/src/evdev-mt-touchpad-tap.c
index c05b45c..357a50a 100644
--- a/src/evdev-mt-touchpad-tap.c
+++ b/src/evdev-mt-touchpad-tap.c
@@ -542,7 +542,10 @@ tp_tap_handle_state(struct tp_dispatch *tp, uint64_t time)
 	struct tp_touch *t;
 	int filter_motion = 0;
 
-	if (tp->queued & TOUCHPAD_EVENT_BUTTON_PRESS)
+	/* Handle queued button pressed events from clickpads. For touchpads
+	 * with separate physical buttons, ignore button pressed events so they
+	 * don't interfere with tapping. */
+	if (tp->buttons.is_clickpad && tp->queued & TOUCHPAD_EVENT_BUTTON_PRESS)
 		tp_tap_handle_event(tp, NULL, TAP_EVENT_BUTTON, time);
 
 	tp_for_each_touch(tp, t) {
diff --git a/test/touchpad.c b/test/touchpad.c
index 86b2c91..eae9202 100644
--- a/test/touchpad.c
+++ b/test/touchpad.c
@@ -256,14 +256,17 @@ START_TEST(touchpad_1fg_tap_click)
 
 	litest_drain_events(dev->libinput);
 
-	/* finger down, button click, finger up
-	   -> only one button left event pair */
+	/* Finger down, finger up -> tap button press
+	 * Physical button click -> no button press/release
+	 * Tap timeout -> tap button release */
 	litest_touch_down(dev, 0, 50, 50);
+	litest_touch_up(dev, 0);
 	litest_event(dev, EV_KEY, BTN_LEFT, 1);
 	litest_event(dev, EV_SYN, SYN_REPORT, 0);
 	litest_event(dev, EV_KEY, BTN_LEFT, 0);
 	litest_event(dev, EV_SYN, SYN_REPORT, 0);
-	litest_touch_up(dev, 0);
+	libinput_dispatch(li);
+	msleep(200);
 
 	libinput_dispatch(li);
 
@@ -286,6 +289,42 @@ START_TEST(touchpad_2fg_tap_click)
 
 	litest_drain_events(dev->libinput);
 
+	/* two fingers down, left button click, fingers up
+	   -> one left button, one right button event pair */
+	litest_touch_down(dev, 0, 50, 50);
+	litest_touch_down(dev, 1, 70, 50);
+	litest_event(dev, EV_KEY, BTN_LEFT, 1);
+	litest_event(dev, EV_SYN, SYN_REPORT, 0);
+	litest_event(dev, EV_KEY, BTN_LEFT, 0);
+	litest_event(dev, EV_SYN, SYN_REPORT, 0);
+	litest_touch_up(dev, 1);
+	litest_touch_up(dev, 0);
+
+	libinput_dispatch(li);
+
+	assert_button_event(li, BTN_LEFT,
+			    LIBINPUT_BUTTON_STATE_PRESSED);
+	assert_button_event(li, BTN_LEFT,
+			    LIBINPUT_BUTTON_STATE_RELEASED);
+	assert_button_event(li, BTN_RIGHT,
+			    LIBINPUT_BUTTON_STATE_PRESSED);
+	assert_button_event(li, BTN_RIGHT,
+			    LIBINPUT_BUTTON_STATE_RELEASED);
+
+	litest_assert_empty_queue(li);
+}
+END_TEST
+
+START_TEST(clickpad_2fg_tap_click)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(dev->libinput);
+
 	/* two fingers down, button click, fingers up
 	   -> only one button left event pair */
 	litest_touch_down(dev, 0, 50, 50);
@@ -684,6 +723,38 @@ START_TEST(touchpad_btn_left)
 }
 END_TEST
 
+START_TEST(clickpad_1fg_tap_click)
+{
+	struct litest_device *dev = litest_current_device();
+	struct libinput *li = dev->libinput;
+
+	libinput_device_config_tap_set_enabled(dev->libinput_device,
+					       LIBINPUT_CONFIG_TAP_ENABLED);
+
+	litest_drain_events(dev->libinput);
+
+	/* finger down, button click, finger up
+	   -> only one button left event pair */
+	litest_touch_down(dev, 0, 50, 50);
+	litest_event(dev, EV_KEY, BTN_LEFT, 1);
+	litest_event(dev, EV_SYN, SYN_REPORT, 0);
+	litest_event(dev, EV_KEY, BTN_LEFT, 0);
+	litest_event(dev, EV_SYN, SYN_REPORT, 0);
+	litest_touch_up(dev, 0);
+	libinput_dispatch(li);
+	msleep(200);
+
+	libinput_dispatch(li);
+
+	assert_button_event(li, BTN_LEFT,
+			    LIBINPUT_BUTTON_STATE_PRESSED);
+	assert_button_event(li, BTN_LEFT,
+			    LIBINPUT_BUTTON_STATE_RELEASED);
+
+	litest_assert_empty_queue(li);
+}
+END_TEST
+
 START_TEST(clickpad_btn_left)
 {
 	struct litest_device *dev = litest_current_device();
@@ -1553,8 +1624,9 @@ int main(int argc, char **argv) {
 	litest_add("touchpad:tap", touchpad_1fg_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY);
 	litest_add("touchpad:tap", touchpad_2fg_tap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
 	litest_add("touchpad:tap", touchpad_2fg_tap_inverted, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
-	litest_add("touchpad:tap", touchpad_1fg_tap_click, LITEST_TOUCHPAD, LITEST_ANY);
-	litest_add("touchpad:tap", touchpad_2fg_tap_click, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD);
+	litest_add("touchpad:tap", touchpad_1fg_tap_click, LITEST_TOUCHPAD, LITEST_CLICKPAD);
+	litest_add("touchpad:tap", touchpad_2fg_tap_click, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_CLICKPAD);
+
 	litest_add("touchpad:tap", touchpad_2fg_tap_click_apple, LITEST_APPLE_CLICKPAD, LITEST_ANY);
 	litest_add("touchpad:tap", touchpad_no_2fg_tap_after_move, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
 	litest_add("touchpad:tap", touchpad_no_2fg_tap_after_timeout, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
@@ -1575,6 +1647,9 @@ int main(int argc, char **argv) {
 	litest_add("touchpad:tap", touchpad_tap_is_available, LITEST_TOUCHPAD, LITEST_ANY);
 	litest_add("touchpad:tap", touchpad_tap_is_not_available, LITEST_ANY, LITEST_TOUCHPAD);
 
+	litest_add("touchpad:tap", clickpad_1fg_tap_click, LITEST_CLICKPAD, LITEST_ANY);
+	litest_add("touchpad:tap", clickpad_2fg_tap_click, LITEST_CLICKPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD);
+
 	litest_add_no_device("touchpad:clickfinger", touchpad_1fg_clickfinger);
 	litest_add_no_device("touchpad:clickfinger", touchpad_2fg_clickfinger);
 
-- 
1.9.3



More information about the wayland-devel mailing list