summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsatrmb <10471-satrmb_true-email-is-private_contact-via-web@gitlab.freedesktop.org>2021-05-19 10:13:06 +0200
committersatrmb <10471-satrmb_true-email-is-private_contact-via-web@gitlab.freedesktop.org>2021-05-19 12:24:59 +0200
commit0cb570addd126648cd53d54591c6c34810738092 (patch)
tree46a13daed3c6f0c603485c9ff067261bfdf65600
parentc4ea48eda651babbf28d7cae7a082b819a5538c9 (diff)
downloadlibinput-0cb570addd126648cd53d54591c6c34810738092.tar.gz
evdev: restart debouncing timers after every event
Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
-rw-r--r--doc/button-debouncing-state-machine.svg2
-rw-r--r--src/evdev-debounce.c12
-rw-r--r--test/test-pointer.c129
3 files changed, 141 insertions, 2 deletions
diff --git a/doc/button-debouncing-state-machine.svg b/doc/button-debouncing-state-machine.svg
index 53c08305..d9f30770 100644
--- a/doc/button-debouncing-state-machine.svg
+++ b/doc/button-debouncing-state-machine.svg
@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1863px" height="1911px" viewBox="-0.5 -0.5 1863 1911" content="&lt;mxfile modified=&quot;2019-03-06T02:00:35.486Z&quot; host=&quot;www.draw.io&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0&quot; etag=&quot;vkHiu0IQZw_6aWYCIVwM&quot; version=&quot;10.3.5&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;27c35eac-9917-780f-69cd-550de3271581&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><path d="M 1702 1327 Q 1702 1389 1592 1389 Q 1482 1389 1482 1259 Q 1482 1129 1350 1129 Q 1218 1129 1218 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1147.88 L 1214.5 1140.88 L 1218 1142.63 L 1221.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1040.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="430" height="200" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; overflow: hidden; max-height: 200px; max-width: 430px; width: 430px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><h1>Entry states: IS_UP, IS_DOWN<br /></h1><p>Assumption: state is stored per-button, and OTHER BUTTON events are always processed before the actual button. Stored state per button is a single bit (up/down), a single state for the state machine across the device is sufficient.</p><p>Start the state machine with IS_UP or IS_DOWN based on the button's bit, any OTHER BUTTON event will reset it to that state anyway, so the state can be re-used for the new button.<br /></p></div></div></foreignObject><text x="215" y="106" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><g transform="translate(4.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="430" height="113" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; overflow: hidden; max-height: 190px; max-width: 430px; width: 430px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><h1>Entry state: DISABLED<br /></h1>Only set on devices that have button debouncing disabled. This state is effectively a noop, it just forwards the events as they come in and returns back to the same state.</div></div></foreignObject><text x="215" y="63" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 645 1595 L 675 1595 L 690 1620 L 675 1645 L 645 1645 L 630 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(637.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;press</text></switch></g><path d="M 645 1277 L 675 1277 L 690 1302 L 675 1327 L 645 1327 L 630 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(633.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;release</text></switch></g><rect x="150" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(190.5,278.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="74" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 75px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">DISABLED</div></div></foreignObject><text x="37" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">DISABLED</text></switch></g><path d="M 99 368 L 129 368 L 144 393 L 129 418 L 99 418 L 84 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(91.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;press</text></switch></g><path d="M 201 309 L 119.24 365.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 114.92 368.37 L 118.7 361.51 L 119.24 365.38 L 122.67 367.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 60 541 Q 22 541 22 395 Q 22 249 126 249 Q 230 249 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 79.61 515.1 C 80.78 511.9 82.67 510.04 84.67 510.12 L 154.53 510.12 C 156.13 510.08 157.65 510.63 158.65 511.61 C 159.64 512.59 159.99 513.88 159.6 515.1 L 140.36 564.9 C 139.19 568.1 137.3 569.96 135.3 569.88 L 64.42 569.88 C 63.01 569.69 61.77 569.05 60.99 568.1 C 60.22 567.15 60 565.99 60.37 564.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(87.5,511.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 113.32 418 L 110.99 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 110.85 508.88 L 107.54 501.79 L 110.99 503.63 L 114.54 501.98 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 215 368 L 245 368 L 260 393 L 245 418 L 215 418 L 200 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(203.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;release</text></switch></g><path d="M 230 309 L 230 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 366.88 L 226.5 359.88 L 230 361.63 L 233.5 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 280 541 Q 422 541 422 395 Q 422 249 326 249 Q 230 249 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 199.61 515.1 C 200.78 511.9 202.67 510.04 204.67 510.12 L 274.53 510.12 C 276.13 510.08 277.65 510.63 278.65 511.61 C 279.64 512.59 279.99 513.88 279.6 515.1 L 260.36 564.9 C 259.19 568.1 257.3 569.96 255.3 569.88 L 184.42 569.88 C 183.01 569.69 181.77 569.05 180.99 568.1 C 180.22 567.15 180 565.99 180.37 564.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(203.5,511.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 230 418 L 230 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 508.88 L 226.5 501.88 L 230 503.63 L 233.5 501.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 376 393 Q 402 393 402 321 Q 402 249 316 249 Q 230 249 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 333 368 L 359 368 L 376 393 L 359 418 L 333 418 L 316 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(323.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 259 309 L 340.76 365.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 345.08 368.37 L 337.33 367.27 L 340.76 365.38 L 341.3 361.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="700" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(756.5,278.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP</div></div></foreignObject><text x="22" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP</text></switch></g><path d="M 765 368 L 795 368 L 810 393 L 795 418 L 765 418 L 750 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(757.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;press</text></switch></g><path d="M 780 309 L 780 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 366.88 L 776.5 359.88 L 780 361.63 L 783.5 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="700" y="1150" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(707.5,1159.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="141" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 142px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN_WAITING</div></div></foreignObject><text x="71" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN_WAITING</text></switch></g><rect x="700" y="1510" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(714.5,1519.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="126" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 127px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_DELAYING</div></div></foreignObject><text x="63" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_DELAYING</text></switch></g><path d="M 1626.61 1025.1 C 1627.78 1021.9 1629.67 1020.04 1631.67 1020.12 L 1701.53 1020.12 C 1703.13 1020.08 1704.65 1020.63 1705.65 1021.61 C 1706.64 1022.59 1706.99 1023.88 1706.6 1025.1 L 1687.36 1074.9 C 1686.19 1078.1 1684.3 1079.96 1682.3 1079.88 L 1611.42 1079.88 C 1610.01 1079.69 1608.77 1079.05 1607.99 1078.1 C 1607.22 1077.15 1607 1075.99 1607.37 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1630.5,1021.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 749.61 809.1 C 750.78 805.9 752.67 804.04 754.67 804.12 L 824.53 804.12 C 826.13 804.08 827.65 804.63 828.65 805.61 C 829.64 806.59 829.99 807.88 829.6 809.1 L 810.36 858.9 C 809.19 862.1 807.3 863.96 805.3 863.88 L 734.42 863.88 C 733.01 863.69 731.77 863.05 730.99 862.1 C 730.22 861.15 730 859.99 730.37 858.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(757.5,805.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 780 1190 L 780 1270.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1275.88 L 776.5 1268.88 L 780 1270.63 L 783.5 1268.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 757.94 1190 L 666.72 1272.72" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 662.83 1276.25 L 665.66 1268.95 L 666.72 1272.72 L 670.36 1274.14 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 662 1329 L 778.47 1503.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 781.38 1508.07 L 774.58 1504.19 L 778.47 1503.7 L 780.41 1500.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780.6 1550 L 781.81 1590.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 781.97 1595.88 L 778.26 1588.99 L 781.81 1590.63 L 785.26 1588.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="700" y="1870" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(756.5,1879.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP</div></div></foreignObject><text x="22" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP</text></switch></g><path d="M 742.39 1550 L 659.62 1594.01" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 654.99 1596.48 L 659.52 1590.1 L 659.62 1594.01 L 662.81 1596.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 632.44 1621 Q 582 1621 582 1377 Q 582 1133 682 1133 Q 782 1133 782 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 782 1147.88 L 778.5 1140.88 L 782 1142.63 L 785.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 749.61 1730.1 C 750.78 1726.9 752.67 1725.04 754.67 1725.12 L 824.53 1725.12 C 826.13 1725.08 827.65 1725.63 828.65 1726.61 C 829.64 1727.59 829.99 1728.88 829.6 1730.1 L 810.36 1779.9 C 809.19 1783.1 807.3 1784.96 805.3 1784.88 L 734.42 1784.88 C 733.01 1784.69 731.77 1784.05 730.99 1783.1 C 730.22 1782.15 730 1780.99 730.37 1779.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(753.5,1726.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 780 1645 L 780 1718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1723.88 L 776.5 1716.88 L 780 1718.63 L 783.5 1716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1785 L 780 1863.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1868.88 L 776.5 1861.88 L 780 1863.63 L 783.5 1861.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1520" y="1510" width="274" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1528.5,1519.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="252" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 253px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN_DETECTING_SPURIOUS</div></div></foreignObject><text x="126" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN_DETECTING_SPURIOUS</text></switch></g><path d="M 1782 1329 L 1672.8 1504.59" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1670.03 1509.05 L 1670.75 1501.26 L 1672.8 1504.59 L 1676.7 1504.95 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1694.31 1550 L 1776.39 1593.99" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1781.01 1596.47 L 1773.19 1596.25 L 1776.39 1593.99 L 1776.5 1590.08 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1669.24 1550 L 1694.68 1591.57" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1697.42 1596.05 L 1690.78 1591.9 L 1694.68 1591.57 L 1696.75 1588.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 656 L 1458.5 706 L 1408.5 756 L 1358.5 706 Z" fill="#999999" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1376.5,686.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="59" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 60px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">spurious<br />enabled?</div></div></foreignObject><text x="30" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">spurious&lt;br&gt;enabled?</text></switch></g><path d="M 1434 733 L 1654.09 1015.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1657.31 1020.12 L 1650.25 1016.74 L 1654.09 1015.97 L 1655.78 1012.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1426.5,743.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">no</div></div></foreignObject><text x="8" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">no</text></switch></g><path d="M 1102.67 1327 L 794.63 1864.48" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 792.02 1869.03 L 792.46 1861.22 L 794.63 1864.48 L 798.54 1864.7 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1382 733 L 1224.03 786.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1219.06 788.64 L 1224.55 783.06 L 1224.03 786.94 L 1226.81 789.69 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1363.5,744.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">yes</div></div></foreignObject><text x="12" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">yes</text></switch></g><ellipse cx="780" cy="497" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="none"/><g transform="translate(761.5,477.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set<br />timer</div></div></foreignObject><text x="17" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set&lt;br&gt;timer</text></switch></g><path d="M 780 418 L 780 465.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 470.88 L 776.5 463.88 L 780 465.63 L 783.5 463.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 522 L 780 797.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 802.88 L 776.5 795.88 L 780 797.63 L 783.5 795.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 637 L 1408.5 649.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 654.88 L 1405 647.88 L 1408.5 649.63 L 1412 647.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 802.8 1190 L 897.21 1272.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 901.16 1276.26 L 893.59 1274.28 L 897.21 1272.8 L 898.2 1269.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 806.67 1550 L 874.64 1600.98" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 878.84 1604.13 L 871.14 1602.73 L 874.64 1600.98 L 875.34 1597.13 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 882.7 1639.46 L 810.9 1720.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 807.41 1724.16 L 809.44 1716.61 L 810.9 1720.24 L 814.68 1721.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1520.34 1317.21 L 810.89 1866.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 806.73 1869.32 L 810.13 1862.26 L 810.89 1866.1 L 814.41 1867.8 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1196.98 1323.76 L 798.5 1864.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 795.39 1869.1 L 796.72 1861.39 L 798.5 1864.87 L 802.36 1865.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1598.77 1316.18 L 813.75 1866.35" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 809.45 1869.36 L 813.18 1862.47 L 813.75 1866.35 L 817.19 1868.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1645.36 1550 L 1621.2 1591.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1618.56 1596.03 L 1619.06 1588.22 L 1621.2 1591.5 L 1625.11 1591.74 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1585.61 1775.1 C 1586.78 1771.9 1588.67 1770.04 1590.67 1770.12 L 1660.53 1770.12 C 1662.13 1770.08 1663.65 1770.63 1664.65 1771.61 C 1665.64 1772.59 1665.99 1773.88 1665.6 1775.1 L 1646.36 1824.9 C 1645.19 1828.1 1643.3 1829.96 1641.3 1829.88 L 1570.42 1829.88 C 1569.01 1829.69 1567.77 1829.05 1566.99 1828.1 C 1566.22 1827.15 1566 1825.99 1566.37 1824.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1593.5,1771.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1616 1645 L 1616 1763.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1616 1768.88 L 1612.5 1761.88 L 1616 1763.63 L 1619.5 1761.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1618 1829 L 1483.3 1868.22" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1478.26 1869.69 L 1484 1864.37 L 1483.3 1868.22 L 1485.96 1871.09 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1086.16 1080 L 789.81 1864.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 787.95 1868.95 L 787.16 1861.17 L 789.81 1864.04 L 793.7 1863.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 887 368 L 913 368 L 930 393 L 913 418 L 887 418 L 870 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(877.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 810.5 309 L 896.67 365.51" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 901.07 368.39 L 893.29 367.48 L 896.67 365.51 L 897.13 361.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1696" cy="1710" rx="30" ry="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1665.5,1690.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 57px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">enable<br />spurious</div></div></foreignObject><text x="28" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">enable&lt;br&gt;spurious</text></switch></g><path d="M 1658 1081 L 1657.3 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1657.24 1148.88 L 1653.82 1141.84 L 1657.3 1143.63 L 1660.82 1141.92 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1676.35 1732.67 L 1646.93 1765.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1643.42 1769.17 L 1645.51 1761.63 L 1646.93 1765.27 L 1650.7 1766.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 930 393 Q 962 393 962 321 Q 962 249 872 249 Q 782 249 782 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 782 267.88 L 778.5 260.88 L 782 262.63 L 785.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 864 L 780 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1148.88 L 776.5 1141.88 L 780 1143.63 L 783.5 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1328.5" y="1870" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1371.5,1879.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="70" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 71px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN</div></div></foreignObject><text x="35" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN</text></switch></g><path d="M 1620.28 1550 L 1539.59 1593.95" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1534.98 1596.47 L 1539.45 1590.04 L 1539.59 1593.95 L 1542.8 1596.19 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1545.39 1645 L 1599.69 1764.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1601.87 1768.98 L 1595.78 1764.06 L 1599.69 1764.2 L 1602.15 1761.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1328.5" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1371.5,278.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="70" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 71px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN</div></div></foreignObject><text x="35" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN</text></switch></g><path d="M 1393.5 368 L 1423.5 368 L 1438.5 393 L 1423.5 418 L 1393.5 418 L 1378.5 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1382.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;release</text></switch></g><path d="M 1408.5 309 L 1408.5 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 366.88 L 1405 359.88 L 1408.5 361.63 L 1412 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1409" cy="497" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="none"/><g transform="translate(1389.5,477.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set<br />timer</div></div></foreignObject><text x="17" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set&lt;br&gt;timer</text></switch></g><path d="M 1408.5 418 L 1408.5 465.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 470.88 L 1405 463.88 L 1408.5 465.63 L 1412 463.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 522 L 1408.5 560.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 565.88 L 1405 558.88 L 1408.5 560.63 L 1412 558.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1409" cy="602" rx="35" ry="35" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(1377.5,582.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="57" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 58px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set short<br />timer</div></div></foreignObject><text x="29" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set short&lt;br&gt;timer</text></switch></g><path d="M 1528 368 L 1554 368 L 1571 393 L 1554 418 L 1528 418 L 1511 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1518.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 1441.88 309 L 1536.54 365.73" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1541.04 368.43 L 1533.24 367.83 L 1536.54 365.73 L 1536.84 361.82 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1571 393 Q 1602 393 1602 321 Q 1602 249 1506 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1103" y="790" width="232" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1110.5,799.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="213" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 214px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_DELAYING_SPURIOUS</div></div></foreignObject><text x="107" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_DELAYING_SPURIOUS</text></switch></g><path d="M 1218.75 830 L 1217.89 898.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1217.83 903.88 L 1214.41 896.84 L 1217.89 898.63 L 1221.41 896.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1244.05 830 L 1333.02 901.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1337.13 904.3 L 1329.47 902.67 L 1333.02 901.03 L 1333.84 897.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1193.53 830 L 1103.01 901.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1098.88 904.31 L 1102.22 897.23 L 1103.01 901.07 L 1106.55 902.74 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1530" y="1150" width="254" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1542.5,1159.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="225" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 226px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_DETECTING_SPURIOUS</div></div></foreignObject><text x="113" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_DETECTING_SPURIOUS</text></switch></g><path d="M 1766 1277 L 1796 1277 L 1811 1302 L 1796 1327 L 1766 1327 L 1751 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1758.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;press</text></switch></g><path d="M 1680.36 1190 L 1777.16 1272.86" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1781.15 1276.27 L 1773.56 1274.38 L 1777.16 1272.86 L 1778.11 1269.06 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1685 1277 L 1715 1277 L 1730 1302 L 1715 1327 L 1685 1327 L 1670 1302 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1673.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout&lt;br&gt;short</text></switch></g><path d="M 1665.41 1190 L 1699.53 1271.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1701.57 1275.97 L 1695.63 1270.87 L 1699.53 1271.13 L 1702.08 1268.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1527 1277 L 1553 1277 L 1570 1302 L 1553 1327 L 1527 1327 L 1510 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1517.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 1635.5 1190 L 1546.66 1272.66" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1542.82 1276.24 L 1545.56 1268.91 L 1546.66 1272.66 L 1550.33 1274.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1604 1277 L 1634 1277 L 1649 1302 L 1634 1327 L 1604 1327 L 1589 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1592.5,1291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1649.71 1190 L 1620.18 1271.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1618.38 1275.95 L 1617.49 1268.17 L 1620.18 1271.02 L 1624.07 1270.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1765 1595 L 1795 1595 L 1810 1620 L 1795 1645 L 1765 1645 L 1750 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1753.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;release</text></switch></g><path d="M 1806.11 1621 Q 1862 1621 1862 1375 Q 1862 1129 1760 1129 Q 1658 1129 1658 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1658 1147.88 L 1654.5 1140.88 L 1658 1142.63 L 1661.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1683 1595 L 1713 1595 L 1728 1620 L 1713 1645 L 1683 1645 L 1668 1620 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1671.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout&lt;br&gt;short</text></switch></g><path d="M 1697.17 1645 L 1696.21 1673.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1696.04 1678.88 L 1692.77 1671.77 L 1696.21 1673.64 L 1699.77 1672 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1603 1595 L 1629 1595 L 1646 1620 L 1629 1645 L 1603 1645 L 1586 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1593.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 1519 1595 L 1549 1595 L 1564 1620 L 1549 1645 L 1519 1645 L 1504 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1507.5,1609.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 765 1277 L 795 1277 L 810 1302 L 795 1327 L 765 1327 L 750 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(753.5,1291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 804.89 1305 Q 950 1305 950 777 Q 950 249 1180 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 887 1277 L 913 1277 L 930 1302 L 913 1327 L 887 1327 L 870 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(877.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 765 1595 L 795 1595 L 810 1620 L 795 1645 L 765 1645 L 750 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(753.5,1609.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 887 1595 L 913 1595 L 930 1620 L 913 1645 L 887 1645 L 870 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(877.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><rect x="1127.5" y="1510" width="182" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1139.5,1519.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="153" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 154px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN_DELAYING</div></div></foreignObject><text x="77" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN_DELAYING</text></switch></g><path d="M 1298.19 1327 L 1228.68 1504.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1226.76 1508.96 L 1226.06 1501.16 L 1228.68 1504.07 L 1232.58 1503.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1243.43 1550 L 1297.03 1593.01" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1301.13 1596.3 L 1293.48 1594.65 L 1297.03 1593.01 L 1297.86 1589.19 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1188.11 1730.1 C 1189.28 1726.9 1191.17 1725.04 1193.17 1725.12 L 1263.03 1725.12 C 1264.63 1725.08 1266.15 1725.63 1267.15 1726.61 C 1268.14 1727.59 1268.49 1728.88 1268.1 1730.1 L 1248.86 1779.9 C 1247.69 1783.1 1245.8 1784.96 1243.8 1784.88 L 1172.92 1784.88 C 1171.51 1784.69 1170.27 1784.05 1169.49 1783.1 C 1168.72 1782.15 1168.5 1780.99 1168.87 1779.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1196.5,1726.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1188.5 1550 L 1123.3 1593.47" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1118.93 1596.38 L 1122.81 1589.58 L 1123.3 1593.47 L 1126.7 1595.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1131.74 1639.61 L 1192.12 1719.91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1195.27 1724.11 L 1188.27 1720.61 L 1192.12 1719.91 L 1193.86 1716.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1550 L 1218.5 1588.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1593.88 L 1215 1586.88 L 1218.5 1588.63 L 1222 1586.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1645 L 1218.5 1718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1723.88 L 1215 1716.88 L 1218.5 1718.63 L 1222 1716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1102 1277 L 1132 1277 L 1147 1302 L 1132 1327 L 1102 1327 L 1087 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1090.5,1291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1293 1277 L 1323 1277 L 1338 1302 L 1323 1327 L 1293 1327 L 1278 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1285.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;press</text></switch></g><path d="M 1200 1277 L 1226 1277 L 1243 1302 L 1226 1327 L 1200 1327 L 1183 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1190.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 1067.11 1025.1 C 1068.28 1021.9 1070.17 1020.04 1072.17 1020.12 L 1142.03 1020.12 C 1143.63 1020.08 1145.15 1020.63 1146.15 1021.61 C 1147.14 1022.59 1147.49 1023.88 1147.1 1025.1 L 1127.86 1074.9 C 1126.69 1078.1 1124.8 1079.96 1122.8 1079.88 L 1051.92 1079.88 C 1050.51 1079.69 1049.27 1079.05 1048.49 1078.1 C 1047.72 1077.15 1047.5 1075.99 1047.87 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1071.5,1021.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1187.11 1025.1 C 1188.28 1021.9 1190.17 1020.04 1192.17 1020.12 L 1262.03 1020.12 C 1263.63 1020.08 1265.15 1020.63 1266.15 1021.61 C 1267.14 1022.59 1267.49 1023.88 1267.1 1025.1 L 1247.86 1074.9 C 1246.69 1078.1 1244.8 1079.96 1242.8 1079.88 L 1171.92 1079.88 C 1170.51 1079.69 1169.27 1079.05 1168.49 1078.1 C 1167.72 1077.15 1167.5 1075.99 1167.87 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1191.5,1021.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1202.5 905 L 1232.5 905 L 1247.5 930 L 1232.5 955 L 1202.5 955 L 1187.5 930 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1191.5,910.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout&lt;br&gt;short</text></switch></g><path d="M 1218 957 L 1218 1014.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1019.88 L 1214.5 1012.88 L 1218 1014.63 L 1221.5 1012.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1323 905 L 1353 905 L 1368 930 L 1353 955 L 1323 955 L 1308 930 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1315.5,910.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;press</text></switch></g><path d="M 1084.5 905 L 1110.5 905 L 1127.5 930 L 1110.5 955 L 1084.5 955 L 1067.5 930 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1075.5,910.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 1097.5 955 L 1097.5 1013.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1097.5 1018.88 L 1094 1011.88 L 1097.5 1013.63 L 1101 1011.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1137.5" y="1150" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1158.5,1159.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="114" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 115px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_WAITING</div></div></foreignObject><text x="57" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_WAITING</text></switch></g><path d="M 1198.9 1190 L 1122.34 1272.34" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1118.76 1276.18 L 1120.97 1268.67 L 1122.34 1272.34 L 1126.09 1273.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1234.79 1190 L 1305.84 1272.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1309.27 1276.15 L 1302.04 1273.15 L 1305.84 1272.18 L 1307.34 1268.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1216.82 1190 L 1214.07 1270.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1213.89 1275.88 L 1210.63 1268.77 L 1214.07 1270.64 L 1217.63 1269.01 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1081 L 1218 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1147.88 L 1214.5 1140.88 L 1218 1142.63 L 1221.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1288.5 1595 L 1318.5 1595 L 1333.5 1620 L 1318.5 1645 L 1288.5 1645 L 1273.5 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1277.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button&lt;br&gt;release</text></switch></g><path d="M 1329.61 1621 Q 1402 1621 1402 1375 Q 1402 1129 1310 1129 Q 1218 1129 1218 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1147.88 L 1214.5 1140.88 L 1218 1142.63 L 1221.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1102 1595 L 1132 1595 L 1147 1620 L 1132 1645 L 1102 1645 L 1087 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1090.5,1609.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1205.5 1595 L 1231.5 1595 L 1248.5 1620 L 1231.5 1645 L 1205.5 1645 L 1188.5 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1196.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other&lt;br&gt;button</text></switch></g><path d="M 924.89 1305 Q 990 1305 990 777 Q 990 249 1200 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1785 L 1366.64 1866.93" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1371.24 1869.46 L 1363.42 1869.15 L 1366.64 1866.93 L 1366.79 1863.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1370 929 Q 1402 929 1402 845 Q 1402 761 1326 761 Q 1250 761 1250 505 Q 1250 249 1330 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1931px" height="1911px" viewBox="-0.5 -0.5 1931 1911" content="&lt;mxfile modified=&quot;2021-05-19T08:09:55.674Z&quot; host=&quot;app.diagrams.net&quot; agent=&quot;5.0 (Windows)&quot; etag=&quot;ujlTX8OeloT0gFxk9wTV&quot; version=&quot;14.6.13&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;27c35eac-9917-780f-69cd-550de3271581&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><path d="M 1700 1327 Q 1700 1390 1591.5 1390 Q 1483 1390 1483 1260 Q 1483 1130 1350.25 1130 Q 1217.5 1130 1217.5 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1217.5 1148.88 L 1214 1141.88 L 1217.5 1143.63 L 1221 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1035.5" y="10" width="440" height="190" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 432px; height: 1px; padding-top: 0px; margin-left: 1041px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; max-height: 200px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><h1>Entry states: IS_UP, IS_DOWN<br /></h1><p>Assumption: state is stored per-button, and OTHER BUTTON events are always processed before the actual button. Stored state per button is a single bit (up/down), a single state for the state machine across the device is sufficient.</p><p>Start the state machine with IS_UP or IS_DOWN based on the button's bit, any OTHER BUTTON event will reset it to that state anyway, so the state can be re-used for the new button.<br /></p></div></div></div></foreignObject><text x="1041" y="12" fill="#000000" font-family="Helvetica" font-size="12px">Entry states: IS_UP, IS_DOWN...</text></switch></g><rect x="0" y="10" width="440" height="180" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 432px; height: 1px; padding-top: 0px; margin-left: 5px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; max-height: 190px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><h1>Entry state: DISABLED<br /></h1>Only set on devices that have button debouncing disabled. This state is effectively a noop, it just forwards the events as they come in and returns back to the same state.</div></div></div></foreignObject><text x="5" y="12" fill="#000000" font-family="Helvetica" font-size="12px">Entry state: DISABLED...</text></switch></g><path d="M 659.62 1645 L 659.04 1683.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 658.97 1688.9 L 655.57 1681.85 L 659.04 1683.65 L 662.57 1681.96 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 645 1595 L 675 1595 L 690 1620 L 675 1645 L 645 1645 L 630 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 631px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />press</div></div></div></foreignObject><text x="660" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 645 1277 L 675 1277 L 690 1302 L 675 1327 L 645 1327 L 630 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 631px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />release</div></div></div></foreignObject><text x="660" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><rect x="150" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 289px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">DISABLED</div></div></div></foreignObject><text x="230" y="293" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">DISABLED</text></switch></g><path d="M 99 368 L 129 368 L 144 393 L 129 418 L 99 418 L 84 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 85px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />press</div></div></div></foreignObject><text x="114" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 200.63 309 L 119.26 364.42" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 114.92 367.37 L 118.74 360.54 L 119.26 364.42 L 122.68 366.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 60 540 Q 20 540 20 394 Q 20 248 125 248 Q 230 248 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 79.61 515.1 C 80.78 511.9 82.67 510.04 84.67 510.12 L 154.53 510.12 C 156.13 510.08 157.65 510.63 158.65 511.61 C 159.64 512.59 159.99 513.88 159.6 515.1 L 140.36 564.9 C 139.19 568.1 137.3 569.96 135.3 569.88 L 64.42 569.88 C 63.01 569.69 61.77 569.05 60.99 568.1 C 60.22 567.15 60 565.99 60.37 564.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 540px; margin-left: 61px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />press</div></div></div></foreignObject><text x="110" y="544" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 113.32 418 L 110.99 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 110.85 508.88 L 107.54 501.79 L 110.99 503.63 L 114.54 501.98 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 215 368 L 245 368 L 260 393 L 245 418 L 215 418 L 200 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 201px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />release</div></div></div></foreignObject><text x="230" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 230 309 L 230 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 230 366.88 L 226.5 359.88 L 230 361.63 L 233.5 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 280 540 Q 420 540 420 394 Q 420 248 325 248 Q 230 248 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 199.61 515.1 C 200.78 511.9 202.67 510.04 204.67 510.12 L 274.53 510.12 C 276.13 510.08 277.65 510.63 278.65 511.61 C 279.64 512.59 279.99 513.88 279.6 515.1 L 260.36 564.9 C 259.19 568.1 257.3 569.96 255.3 569.88 L 184.42 569.88 C 183.01 569.69 181.77 569.05 180.99 568.1 C 180.22 567.15 180 565.99 180.37 564.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 540px; margin-left: 181px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />release</div></div></div></foreignObject><text x="230" y="544" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 230 418 L 230 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 230 508.88 L 226.5 501.88 L 230 503.63 L 233.5 501.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 376 393 Q 400 393 400 320.5 Q 400 248 315 248 Q 230 248 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 333 368 L 359 368 L 376 393 L 359 418 L 333 418 L 316 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 317px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="346" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 259.37 309 L 340.74 364.42" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 345.08 367.37 L 337.32 366.32 L 340.74 364.42 L 341.26 360.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="700" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 289px; margin-left: 701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_UP</div></div></div></foreignObject><text x="780" y="293" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_UP</text></switch></g><path d="M 765 368 L 795 368 L 810 393 L 795 418 L 765 418 L 750 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 751px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />press</div></div></div></foreignObject><text x="780" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 780 309 L 780 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 366.88 L 776.5 359.88 L 780 361.63 L 783.5 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="700" y="1150" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1170px; margin-left: 701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_DOWN_WAITING</div></div></div></foreignObject><text x="780" y="1174" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_DOWN_WAITING</text></switch></g><rect x="700" y="1510" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1530px; margin-left: 701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_UP_DELAYING</div></div></div></foreignObject><text x="780" y="1534" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_UP_DELAYING</text></switch></g><path d="M 1626.61 1025.1 C 1627.78 1021.9 1629.67 1020.04 1631.67 1020.12 L 1701.53 1020.12 C 1703.13 1020.08 1704.65 1020.63 1705.65 1021.61 C 1706.64 1022.59 1706.99 1023.88 1706.6 1025.1 L 1687.36 1074.9 C 1686.19 1078.1 1684.3 1079.96 1682.3 1079.88 L 1611.42 1079.88 C 1610.01 1079.69 1608.77 1079.05 1607.99 1078.1 C 1607.22 1077.15 1607 1075.99 1607.37 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1050px; margin-left: 1608px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />release</div></div></div></foreignObject><text x="1657" y="1054" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 749.61 809.1 C 750.78 805.9 752.67 804.04 754.67 804.12 L 824.53 804.12 C 826.13 804.08 827.65 804.63 828.65 805.61 C 829.64 806.59 829.99 807.88 829.6 809.1 L 810.36 858.9 C 809.19 862.1 807.3 863.96 805.3 863.88 L 734.42 863.88 C 733.01 863.69 731.77 863.05 730.99 862.1 C 730.22 861.15 730 859.99 730.37 858.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 834px; margin-left: 731px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />press</div></div></div></foreignObject><text x="780" y="838" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 780 1190 L 780 1270.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 1275.88 L 776.5 1268.88 L 780 1270.63 L 783.5 1268.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 757.57 1190 L 664.75 1272.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 660.83 1276.26 L 663.73 1268.98 L 664.75 1272.76 L 668.39 1274.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 660 1420 L 774.91 1506.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 779.11 1509.33 L 771.41 1507.93 L 774.91 1506.18 L 775.61 1502.33 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 780 1550 L 780 1588.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 1593.88 L 776.5 1586.88 L 780 1588.63 L 783.5 1586.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="700" y="1870" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1890px; margin-left: 701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_UP</div></div></div></foreignObject><text x="780" y="1894" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_UP</text></switch></g><path d="M 740.77 1550 L 658.17 1592.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 653.5 1594.49 L 658.14 1588.19 L 658.17 1592.11 L 661.32 1594.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 635 1715 Q 580 1715 580 1423 Q 580 1131 680 1131 Q 780 1131 780 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 1148.88 L 776.5 1141.88 L 780 1143.63 L 783.5 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 749.61 1730.1 C 750.78 1726.9 752.67 1725.04 754.67 1725.12 L 824.53 1725.12 C 826.13 1725.08 827.65 1725.63 828.65 1726.61 C 829.64 1727.59 829.99 1728.88 829.6 1730.1 L 810.36 1779.9 C 809.19 1783.1 807.3 1784.96 805.3 1784.88 L 734.42 1784.88 C 733.01 1784.69 731.77 1784.05 730.99 1783.1 C 730.22 1782.15 730 1780.99 730.37 1779.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1755px; margin-left: 731px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />release</div></div></div></foreignObject><text x="780" y="1759" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 780 1645 L 780 1718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 1723.88 L 776.5 1716.88 L 780 1718.63 L 783.5 1716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 780 1785 L 780 1863.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 1868.88 L 776.5 1861.88 L 780 1863.63 L 783.5 1861.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1520" y="1510" width="274" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 272px; height: 1px; padding-top: 1530px; margin-left: 1521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_DOWN_DETECTING_SPURIOUS</div></div></div></foreignObject><text x="1657" y="1534" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_DOWN_DETECTING_SPURIOUS</text></switch></g><path d="M 1661.17 1469.75 L 1657.66 1503.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1657.12 1508.89 L 1654.36 1501.56 L 1657.66 1503.67 L 1661.32 1502.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1694.85 1550 L 1774.37 1592.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1779.01 1594.48 L 1771.19 1594.3 L 1774.37 1592.02 L 1774.46 1588.11 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1669.62 1550 L 1694.6 1589.61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1697.4 1594.05 L 1690.71 1590 L 1694.6 1589.61 L 1696.63 1586.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1408.5 656 L 1458.5 706 L 1408.5 756 L 1358.5 706 Z" fill="#999999" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 706px; margin-left: 1360px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">spurious<br />enabled?</div></div></div></foreignObject><text x="1409" y="710" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">spurious...</text></switch></g><path d="M 1434.7 731.9 L 1653.11 1014.96" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1656.32 1019.11 L 1649.27 1015.71 L 1653.11 1014.96 L 1654.81 1011.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 750px; margin-left: 1435px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">no</div></div></div></foreignObject><text x="1435" y="753" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">no</text></switch></g><path d="M 1102.67 1327 L 794.63 1864.48" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 792.02 1869.03 L 792.46 1861.22 L 794.63 1864.48 L 798.54 1864.7 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1383 731.2 L 1224.99 787.85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1220.05 789.62 L 1225.46 783.97 L 1224.99 787.85 L 1227.82 790.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 751px; margin-left: 1374px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">yes</div></div></div></foreignObject><text x="1374" y="754" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">yes</text></switch></g><ellipse cx="780" cy="497" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 497px; margin-left: 756px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="780" y="501" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><path d="M 780 418 L 780 465.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 470.88 L 776.5 463.88 L 780 465.63 L 783.5 463.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 780 522 L 780 797.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 802.88 L 776.5 795.88 L 780 797.63 L 783.5 795.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1408.5 637 L 1408.5 649.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 654.88 L 1405 647.88 L 1408.5 649.63 L 1412 647.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 802.43 1190 L 895.25 1272.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 899.17 1276.26 L 891.61 1274.21 L 895.25 1272.76 L 896.27 1268.98 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 806.67 1550 L 874.22 1600.66" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 878.42 1603.81 L 870.72 1602.41 L 874.22 1600.66 L 874.92 1596.81 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 882.09 1640.15 L 810.9 1720.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 807.41 1724.16 L 809.44 1716.61 L 810.9 1720.24 L 814.68 1721.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1519.51 1317.85 L 810.89 1866.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 806.73 1869.32 L 810.13 1862.26 L 810.89 1866.1 L 814.41 1867.8 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1196.47 1324.45 L 798.5 1864.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 795.39 1869.1 L 796.72 1861.39 L 798.5 1864.87 L 802.36 1865.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1597.88 1316.8 L 813.75 1866.35" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 809.45 1869.36 L 813.18 1862.47 L 813.75 1866.35 L 817.19 1868.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1644.38 1550 L 1619.4 1589.61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1616.6 1594.05 L 1617.37 1586.27 L 1619.4 1589.61 L 1623.29 1590 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1585.61 1775.1 C 1586.78 1771.9 1588.67 1770.04 1590.67 1770.12 L 1660.53 1770.12 C 1662.13 1770.08 1663.65 1770.63 1664.65 1771.61 C 1665.64 1772.59 1665.99 1773.88 1665.6 1775.1 L 1646.36 1824.9 C 1645.19 1828.1 1643.3 1829.96 1641.3 1829.88 L 1570.42 1829.88 C 1569.01 1829.69 1567.77 1829.05 1566.99 1828.1 C 1566.22 1827.15 1566 1825.99 1566.37 1824.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1800px; margin-left: 1567px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />press</div></div></div></foreignObject><text x="1616" y="1804" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 1616 1645 L 1616 1763.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1616 1768.88 L 1612.5 1761.88 L 1616 1763.63 L 1619.5 1761.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1616 1830 L 1483.78 1868.23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1478.74 1869.69 L 1484.49 1864.38 L 1483.78 1868.23 L 1486.44 1871.11 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1086.16 1080 L 789.81 1864.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 787.95 1868.95 L 787.16 1861.17 L 789.81 1864.04 L 793.7 1863.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 887 368 L 913 368 L 930 393 L 913 418 L 887 418 L 870 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="900" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 810.38 309 L 894.68 364.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 899.07 367.39 L 891.29 366.46 L 894.68 364.5 L 895.14 360.61 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1696" cy="1710" rx="30" ry="30" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1710px; margin-left: 1667px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">enable<br />spurious</div></div></div></foreignObject><text x="1696" y="1714" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">enable...</text></switch></g><path d="M 1657 1080 L 1657 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1657 1148.88 L 1653.5 1141.88 L 1657 1143.63 L 1660.5 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1676.14 1732.48 L 1646.91 1765.25" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1643.41 1769.17 L 1645.46 1761.61 L 1646.91 1765.25 L 1650.68 1766.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 930 393 Q 960 393 960 321 Q 960 249 870 249 Q 780 249 780 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 267.88 L 776.5 260.88 L 780 262.63 L 783.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 780 864 L 780 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 780 1148.88 L 776.5 1141.88 L 780 1143.63 L 783.5 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1328.5" y="1870" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1890px; margin-left: 1330px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_DOWN</div></div></div></foreignObject><text x="1409" y="1894" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_DOWN</text></switch></g><path d="M 1619.15 1550 L 1539.63 1592.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1534.99 1594.48 L 1539.54 1588.11 L 1539.63 1592.02 L 1542.81 1594.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1545.39 1645 L 1599.69 1764.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1601.87 1768.98 L 1595.78 1764.06 L 1599.69 1764.2 L 1602.15 1761.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1328.5" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 289px; margin-left: 1330px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_DOWN</div></div></div></foreignObject><text x="1409" y="293" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_DOWN</text></switch></g><path d="M 1393.5 368 L 1423.5 368 L 1438.5 393 L 1423.5 418 L 1393.5 418 L 1378.5 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 1380px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />release</div></div></div></foreignObject><text x="1409" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 1408.5 309 L 1408.5 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 366.88 L 1405 359.88 L 1408.5 361.63 L 1412 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1408.5" cy="497" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 497px; margin-left: 1385px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="1409" y="501" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><path d="M 1408.5 418 L 1408.5 465.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 470.88 L 1405 463.88 L 1408.5 465.63 L 1412 463.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1408.5 522 L 1408.5 560.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 565.88 L 1405 558.88 L 1408.5 560.63 L 1412 558.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1408.5" cy="602" rx="35" ry="35" fill="#9ac7bf" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 602px; margin-left: 1375px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set short<br />timer</div></div></div></foreignObject><text x="1409" y="606" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set short...</text></switch></g><path d="M 1528 368 L 1554 368 L 1571 393 L 1554 418 L 1528 418 L 1511 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 393px; margin-left: 1512px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="1541" y="397" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 1442.04 309 L 1535.53 364.74" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1540.04 367.43 L 1532.23 366.85 L 1535.53 364.74 L 1535.82 360.84 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1571 393 Q 1600 393 1600 321 Q 1600 249 1504.25 249 Q 1408.5 249 1408.5 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 267.88 L 1405 260.88 L 1408.5 262.63 L 1412 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1103" y="790" width="232" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 230px; height: 1px; padding-top: 810px; margin-left: 1104px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_UP_DELAYING_SPURIOUS</div></div></div></foreignObject><text x="1219" y="814" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_UP_DELAYING_SPURIOUS</text></switch></g><path d="M 1218.75 830 L 1217.89 898.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1217.83 903.88 L 1214.41 896.84 L 1217.89 898.63 L 1221.41 896.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1244.05 830 L 1333.02 901.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1337.13 904.3 L 1329.47 902.67 L 1333.02 901.03 L 1333.84 897.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1193.42 830 L 1102.52 901.08" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1098.38 904.31 L 1101.74 897.24 L 1102.52 901.08 L 1106.05 902.76 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1530" y="1150" width="254" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 252px; height: 1px; padding-top: 1170px; margin-left: 1531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_UP_DETECTING_SPURIOUS</div></div></div></foreignObject><text x="1657" y="1174" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_UP_DETECTING_SPURIOUS</text></switch></g><path d="M 1781 1327 L 1781 1363.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1781 1368.88 L 1777.5 1361.88 L 1781 1363.63 L 1784.5 1361.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1766 1277 L 1796 1277 L 1811 1302 L 1796 1327 L 1766 1327 L 1751 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1752px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />press</div></div></div></foreignObject><text x="1781" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 1680.18 1190 L 1776.18 1272.84" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1780.15 1276.27 L 1772.57 1274.35 L 1776.18 1272.84 L 1777.14 1269.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1685 1277 L 1715 1277 L 1730 1302 L 1715 1327 L 1685 1327 L 1670 1302 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1671px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout<br />short</div></div></div></foreignObject><text x="1700" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout...</text></switch></g><path d="M 1665.04 1190 L 1697.63 1271.09" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1699.58 1275.96 L 1693.73 1270.77 L 1697.63 1271.09 L 1700.22 1268.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1527 1277 L 1553 1277 L 1570 1302 L 1553 1327 L 1527 1327 L 1510 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1511px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="1540" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 1635.13 1190 L 1544.7 1272.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1540.83 1276.25 L 1543.63 1268.94 L 1544.7 1272.7 L 1548.35 1274.1 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1604 1277 L 1634 1277 L 1649 1302 L 1634 1327 L 1604 1327 L 1589 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1590px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout</div></div></div></foreignObject><text x="1619" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout</text></switch></g><path d="M 1649.9 1190 L 1621.13 1271" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1619.37 1275.95 L 1618.42 1268.18 L 1621.13 1271 L 1625.01 1270.52 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1780.36 1645 L 1780.91 1683.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1780.98 1688.88 L 1777.38 1681.93 L 1780.91 1683.63 L 1784.38 1681.83 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1765 1595 L 1795 1595 L 1810 1620 L 1795 1645 L 1765 1645 L 1750 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1751px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />release</div></div></div></foreignObject><text x="1780" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 1895 1680 Q 1895 1130 1776 1130 Q 1657 1130 1657 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1657 1148.88 L 1653.5 1141.88 L 1657 1143.63 L 1660.5 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1683 1595 L 1713 1595 L 1728 1620 L 1713 1645 L 1683 1645 L 1668 1620 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1669px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout<br />short</div></div></div></foreignObject><text x="1698" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout...</text></switch></g><path d="M 1697.44 1645 L 1696.81 1673.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1696.69 1678.89 L 1693.35 1671.81 L 1696.81 1673.64 L 1700.35 1671.97 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1603 1595 L 1629 1595 L 1646 1620 L 1629 1645 L 1603 1645 L 1586 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1587px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="1616" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 1519 1595 L 1549 1595 L 1564 1620 L 1549 1645 L 1519 1645 L 1504 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1505px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout</div></div></div></foreignObject><text x="1534" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout</text></switch></g><path d="M 765 1277 L 795 1277 L 810 1302 L 795 1327 L 765 1327 L 750 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 751px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout</div></div></div></foreignObject><text x="780" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout</text></switch></g><path d="M 809.4 1303 Q 949 1303 949 775.5 Q 949 248 1178.75 248 Q 1408.5 248 1408.5 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 267.88 L 1405 260.88 L 1408.5 262.63 L 1412 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 887 1277 L 913 1277 L 930 1302 L 913 1327 L 887 1327 L 870 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="900" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 765 1595 L 795 1595 L 810 1620 L 795 1645 L 765 1645 L 750 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 751px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout</div></div></div></foreignObject><text x="780" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout</text></switch></g><path d="M 887 1595 L 913 1595 L 930 1620 L 913 1645 L 887 1645 L 870 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="900" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><rect x="1127.5" y="1510" width="182" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 180px; height: 1px; padding-top: 1530px; margin-left: 1129px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_DOWN_DELAYING</div></div></div></foreignObject><text x="1219" y="1534" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_DOWN_DELAYING</text></switch></g><path d="M 1294.22 1415.86 L 1235.28 1504.69" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1232.38 1509.07 L 1233.33 1501.3 L 1235.28 1504.69 L 1239.16 1505.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1244.65 1550 L 1298.44 1591.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1302.61 1594.32 L 1294.93 1592.85 L 1298.44 1591.13 L 1299.18 1587.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1188.11 1730.1 C 1189.28 1726.9 1191.17 1725.04 1193.17 1725.12 L 1263.03 1725.12 C 1264.63 1725.08 1266.15 1725.63 1267.15 1726.61 C 1268.14 1727.59 1268.49 1728.88 1268.1 1730.1 L 1248.86 1779.9 C 1247.69 1783.1 1245.8 1784.96 1243.8 1784.88 L 1172.92 1784.88 C 1171.51 1784.69 1170.27 1784.05 1169.49 1783.1 C 1168.72 1782.15 1168.5 1780.99 1168.87 1779.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1755px; margin-left: 1170px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />press</div></div></div></foreignObject><text x="1219" y="1759" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 1187.27 1550 L 1122.36 1591.57" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1117.94 1594.4 L 1121.95 1587.67 L 1122.36 1591.57 L 1125.72 1593.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1133.68 1642.19 L 1192.12 1719.91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1195.27 1724.11 L 1188.27 1720.61 L 1192.12 1719.91 L 1193.86 1716.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1218.5 1550 L 1218.5 1588.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1218.5 1593.88 L 1215 1586.88 L 1218.5 1588.63 L 1222 1586.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1218.5 1645 L 1218.5 1718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1218.5 1723.88 L 1215 1716.88 L 1218.5 1718.63 L 1222 1716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1102 1277 L 1132 1277 L 1147 1302 L 1132 1327 L 1102 1327 L 1087 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1088px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout</div></div></div></foreignObject><text x="1117" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout</text></switch></g><path d="M 1308 1327 L 1308 1363.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1308 1368.88 L 1304.5 1361.88 L 1308 1363.63 L 1311.5 1361.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1293 1277 L 1323 1277 L 1338 1302 L 1323 1327 L 1293 1327 L 1278 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1279px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />press</div></div></div></foreignObject><text x="1308" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 1200 1277 L 1226 1277 L 1243 1302 L 1226 1327 L 1200 1327 L 1183 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1302px; margin-left: 1184px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="1213" y="1306" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 1067.11 1025.1 C 1068.28 1021.9 1070.17 1020.04 1072.17 1020.12 L 1142.03 1020.12 C 1143.63 1020.08 1145.15 1020.63 1146.15 1021.61 C 1147.14 1022.59 1147.49 1023.88 1147.1 1025.1 L 1127.86 1074.9 C 1126.69 1078.1 1124.8 1079.96 1122.8 1079.88 L 1051.92 1079.88 C 1050.51 1079.69 1049.27 1079.05 1048.49 1078.1 C 1047.72 1077.15 1047.5 1075.99 1047.87 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1050px; margin-left: 1049px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />release</div></div></div></foreignObject><text x="1098" y="1054" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 1187.11 1025.1 C 1188.28 1021.9 1190.17 1020.04 1192.17 1020.12 L 1262.03 1020.12 C 1263.63 1020.08 1265.15 1020.63 1266.15 1021.61 C 1267.14 1022.59 1267.49 1023.88 1267.1 1025.1 L 1247.86 1074.9 C 1246.69 1078.1 1244.8 1079.96 1242.8 1079.88 L 1171.92 1079.88 C 1170.51 1079.69 1169.27 1079.05 1168.49 1078.1 C 1167.72 1077.15 1167.5 1075.99 1167.87 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 1050px; margin-left: 1169px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">notify<br />button<br />release</div></div></div></foreignObject><text x="1218" y="1054" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">notify...</text></switch></g><path d="M 1202.5 905 L 1232.5 905 L 1247.5 930 L 1232.5 955 L 1202.5 955 L 1187.5 930 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 930px; margin-left: 1189px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout<br />short</div></div></div></foreignObject><text x="1218" y="934" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout...</text></switch></g><path d="M 1217.5 955 L 1217.5 1013.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1217.5 1018.88 L 1214 1011.88 L 1217.5 1013.63 L 1221 1011.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1323 905 L 1353 905 L 1368 930 L 1353 955 L 1323 955 L 1308 930 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 930px; margin-left: 1309px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />press</div></div></div></foreignObject><text x="1338" y="934" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 1084.5 905 L 1110.5 905 L 1127.5 930 L 1110.5 955 L 1084.5 955 L 1067.5 930 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 930px; margin-left: 1069px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="1098" y="934" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 1097.5 955 L 1097.5 1013.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1097.5 1018.88 L 1094 1011.88 L 1097.5 1013.63 L 1101 1011.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1137.5" y="1150" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1170px; margin-left: 1139px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IS_UP_WAITING</div></div></div></foreignObject><text x="1218" y="1174" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">IS_UP_WAITING</text></switch></g><path d="M 1198.71 1190 L 1121.36 1272.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1117.77 1276.19 L 1120.01 1268.69 L 1121.36 1272.36 L 1125.11 1273.48 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1234.42 1190 L 1303.89 1272.14" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1307.28 1276.15 L 1300.09 1273.06 L 1303.89 1272.14 L 1305.43 1268.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1216.82 1190 L 1214.07 1270.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1213.89 1275.88 L 1210.63 1268.77 L 1214.07 1270.64 L 1217.63 1269.01 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1217.5 1080 L 1217.5 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1217.5 1148.88 L 1214 1141.88 L 1217.5 1143.63 L 1221 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1303.32 1645 L 1303.05 1683.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1303.01 1688.88 L 1299.56 1681.86 L 1303.05 1683.63 L 1306.56 1681.91 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1288.5 1595 L 1318.5 1595 L 1333.5 1620 L 1318.5 1645 L 1288.5 1645 L 1273.5 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1275px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">button<br />release</div></div></div></foreignObject><text x="1304" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">button...</text></switch></g><path d="M 1328 1715 Q 1400 1715 1400 1422.5 Q 1400 1130 1308.75 1130 Q 1217.5 1130 1217.5 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1217.5 1148.88 L 1214 1141.88 L 1217.5 1143.63 L 1221 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1102 1595 L 1132 1595 L 1147 1620 L 1132 1645 L 1102 1645 L 1087 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1088px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">timeout</div></div></div></foreignObject><text x="1117" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">timeout</text></switch></g><path d="M 1205.5 1595 L 1231.5 1595 L 1248.5 1620 L 1231.5 1645 L 1205.5 1645 L 1188.5 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1620px; margin-left: 1190px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">other<br />button</div></div></div></foreignObject><text x="1219" y="1624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">other...</text></switch></g><path d="M 929.4 1303 Q 989 1303 989 775.5 Q 989 248 1198.75 248 Q 1408.5 248 1408.5 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 267.88 L 1405 260.88 L 1408.5 262.63 L 1412 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1218.5 1785 L 1366.74 1866.92" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1371.33 1869.46 L 1363.51 1869.14 L 1366.74 1866.92 L 1366.9 1863.01 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1368 930 Q 1400 930 1400 845 Q 1400 760 1325.5 760 Q 1251 760 1251 504 Q 1251 248 1329.75 248 Q 1408.5 248 1408.5 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1408.5 267.88 L 1405 260.88 L 1408.5 262.63 L 1412 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="660" cy="1395" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 1395px; margin-left: 636px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="660" y="1399" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><path d="M 660 1327 L 660 1363.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 660 1368.88 L 656.5 1361.88 L 660 1363.63 L 663.5 1361.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="660" cy="1715" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 1715px; margin-left: 636px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="660" y="1719" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><ellipse cx="1308" cy="1395" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 1395px; margin-left: 1284px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="1308" y="1399" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><ellipse cx="1303" cy="1715" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 1715px; margin-left: 1279px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="1303" y="1719" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><path d="M 1757.2 1402.67 L 1696.37 1422.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1691.37 1423.91 L 1696.96 1418.43 L 1696.37 1422.3 L 1699.11 1425.09 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1781" cy="1395" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 1395px; margin-left: 1757px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="1781" y="1399" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><ellipse cx="1657" cy="1435" rx="35" ry="35" fill="#9ac7bf" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 1435px; margin-left: 1623px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set short<br />timer</div></div></div></foreignObject><text x="1657" y="1439" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set short...</text></switch></g><path d="M 1806 1715 L 1853.63 1715" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1858.88 1715 L 1851.88 1718.5 L 1853.63 1715 L 1851.88 1711.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1781" cy="1715" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 1715px; margin-left: 1757px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set<br />timer</div></div></div></foreignObject><text x="1781" y="1719" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set...</text></switch></g><ellipse cx="1895" cy="1715" rx="35" ry="35" fill="#9ac7bf" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 1715px; margin-left: 1861px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">set short<br />timer</div></div></div></foreignObject><text x="1895" y="1719" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">set short...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg> \ No newline at end of file
diff --git a/src/evdev-debounce.c b/src/evdev-debounce.c
index 0c520c8c..32ca0eb3 100644
--- a/src/evdev-debounce.c
+++ b/src/evdev-debounce.c
@@ -57,7 +57,9 @@
7 and 8 are cases where the first event happens within the first timeout
but the second event is outside that timeout (but within the timeout of
- the second event). These cases are currently unhandled.
+ the second event). These cases are handled by restarting the timer on every
+ event that could be part of a bouncing sequence, which makes these cases
+ indistinguishable from 5 and 6.
*/
enum debounce_event {
@@ -236,6 +238,7 @@ debounce_is_down_waiting_handle_event(struct fallback_dispatch *fallback, enum d
log_debounce_bug(fallback, event);
break;
case DEBOUNCE_EVENT_RELEASE:
+ debounce_set_timer(fallback, time);
debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_DELAYING);
/* Note: In the debouncing RPR case, we use the last
* release's time stamp */
@@ -258,6 +261,7 @@ debounce_is_up_delaying_handle_event(struct fallback_dispatch *fallback, enum de
{
switch (event) {
case DEBOUNCE_EVENT_PRESS:
+ debounce_set_timer(fallback, time);
debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN_WAITING);
break;
case DEBOUNCE_EVENT_RELEASE:
@@ -304,6 +308,8 @@ debounce_is_up_detecting_spurious_handle_event(struct fallback_dispatch *fallbac
{
switch (event) {
case DEBOUNCE_EVENT_PRESS:
+ debounce_set_timer(fallback, time);
+ debounce_set_timer_short(fallback, time);
/* Note: in a bouncing PRP case, we use the last press
* event time */
fallback->debounce.button_time = time;
@@ -332,6 +338,8 @@ debounce_is_down_detecting_spurious_handle_event(struct fallback_dispatch *fallb
log_debounce_bug(fallback, event);
break;
case DEBOUNCE_EVENT_RELEASE:
+ debounce_set_timer(fallback, time);
+ debounce_set_timer_short(fallback, time);
debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS);
break;
case DEBOUNCE_EVENT_TIMEOUT_SHORT:
@@ -355,6 +363,7 @@ debounce_is_up_waiting_handle_event(struct fallback_dispatch *fallback, enum deb
{
switch (event) {
case DEBOUNCE_EVENT_PRESS:
+ debounce_set_timer(fallback, time);
/* Note: in a debouncing PRP case, we use the last press'
* time */
fallback->debounce.button_time = time;
@@ -379,6 +388,7 @@ debounce_is_down_delaying_handle_event(struct fallback_dispatch *fallback, enum
log_debounce_bug(fallback, event);
break;
case DEBOUNCE_EVENT_RELEASE:
+ debounce_set_timer(fallback, time);
debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_WAITING);
break;
case DEBOUNCE_EVENT_TIMEOUT_SHORT:
diff --git a/test/test-pointer.c b/test/test-pointer.c
index a4be655a..6ed0a37b 100644
--- a/test/test-pointer.c
+++ b/test/test-pointer.c
@@ -2719,6 +2719,64 @@ START_TEST(debounce_bounce)
}
END_TEST
+START_TEST(debounce_bounce_high_delay)
+{
+ struct litest_device *dev = litest_current_device();
+ struct libinput *li = dev->libinput;
+ unsigned int button = _i; /* ranged test */
+
+ if (!libinput_device_pointer_has_button(dev->libinput_device,
+ button))
+ return;
+
+ litest_disable_middleemu(dev);
+ disable_button_scrolling(dev);
+ litest_drain_events(li);
+
+ /* Debouncing timeout is 25ms after a button down or up. Make sure we go
+ * over 25ms for the total bouncing duration, but stay under 25ms for
+ * each single event. */
+ litest_event(dev, EV_KEY, button, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(15);
+ litest_event(dev, EV_KEY, button, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(15);
+ litest_event(dev, EV_KEY, button, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ litest_timeout_debounce();
+ libinput_dispatch(li);
+
+ litest_assert_button_event(li,
+ button,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ litest_assert_empty_queue(li);
+
+ litest_event(dev, EV_KEY, button, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(15);
+ litest_event(dev, EV_KEY, button, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(15);
+ litest_event(dev, EV_KEY, button, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ litest_timeout_debounce();
+ libinput_dispatch(li);
+
+ litest_assert_button_event(li,
+ button,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+
+ litest_assert_empty_queue(li);
+}
+END_TEST
+
START_TEST(debounce_bounce_check_immediate)
{
struct litest_device *dev = litest_current_device();
@@ -2908,6 +2966,75 @@ START_TEST(debounce_spurious_multibounce)
}
END_TEST
+START_TEST(debounce_spurious_trigger_high_delay)
+{
+ struct litest_device *dev = litest_current_device();
+ struct libinput *li = dev->libinput;
+
+ litest_disable_middleemu(dev);
+ litest_drain_events(li);
+
+ litest_event(dev, EV_KEY, BTN_LEFT, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ litest_timeout_debounce();
+ libinput_dispatch(li);
+
+ litest_assert_button_event(li,
+ BTN_LEFT,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+
+ /* Spurious timeout is 12ms after a button down or up. Make sure we go
+ * over 12ms for the total bouncing duration, but stay under 12ms for
+ * each single event. */
+ litest_event(dev, EV_KEY, BTN_LEFT, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(5);
+ litest_event(dev, EV_KEY, BTN_LEFT, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(5);
+ litest_event(dev, EV_KEY, BTN_LEFT, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ msleep(5);
+ litest_event(dev, EV_KEY, BTN_LEFT, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+
+ litest_timeout_debounce();
+ libinput_dispatch(li);
+
+ litest_assert_button_event(li,
+ BTN_LEFT,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ litest_assert_button_event(li,
+ BTN_LEFT,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+
+ /* gets filtered now */
+ litest_event(dev, EV_KEY, BTN_LEFT, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ litest_event(dev, EV_KEY, BTN_LEFT, 1);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ litest_timeout_debounce();
+ litest_assert_empty_queue(li);
+
+ litest_event(dev, EV_KEY, BTN_LEFT, 0);
+ litest_event(dev, EV_SYN, SYN_REPORT, 0);
+ libinput_dispatch(li);
+ litest_timeout_debounce();
+ libinput_dispatch(li);
+ litest_assert_button_event(li,
+ BTN_LEFT,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ litest_assert_empty_queue(li);
+}
+END_TEST
+
START_TEST(debounce_spurious_dont_enable_on_otherbutton)
{
struct litest_device *dev = litest_current_device();
@@ -3231,9 +3358,11 @@ TEST_COLLECTION(pointer)
litest_add(pointer_time_usec, LITEST_RELATIVE, LITEST_ANY);
litest_add_ranged(debounce_bounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons);
+ litest_add_ranged(debounce_bounce_high_delay, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons);
litest_add(debounce_bounce_check_immediate, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
litest_add_ranged(debounce_spurious, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons);
litest_add(debounce_spurious_multibounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
+ litest_add(debounce_spurious_trigger_high_delay, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
litest_add(debounce_spurious_dont_enable_on_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
litest_add(debounce_spurious_cancel_debounce_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);
litest_add(debounce_spurious_switch_to_otherbutton, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE);