oklahomer/go-sarah

View on GitHub
doc/uml/components.svg

Summary

Maintainability
Test Coverage
<?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="2215px" height="1449px" viewBox="-0.5 -0.5 2215 1449" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2021-06-12T12:16:38.774Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36&quot; etag=&quot;yOG5NACcJg9KaqleAbma&quot; version=&quot;14.6.13&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;8FASz6ixOo-Ovtf7141D&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 1645.25 874.5 C 1603.85 874.5 1593.5 914.5 1626.62 922.5 C 1593.5 940.1 1630.76 978.5 1657.67 962.5 C 1676.3 994.5 1738.4 994.5 1759.1 962.5 C 1800.5 962.5 1800.5 930.5 1774.63 914.5 C 1800.5 882.5 1759.1 850.5 1722.88 866.5 C 1697 842.5 1655.6 842.5 1645.25 874.5 Z" fill-opacity="0.5" fill="#ffffff" stroke="#000000" stroke-opacity="0.5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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: 203px; height: 1px; padding-top: 915px; margin-left: 1596px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 201px; max-height: 154px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; "><font style="font-size: 20px">Chat Service</font></div></div></div></foreignObject><text x="1697" y="918" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">Chat Service</text></switch></g><rect x="362" y="201" width="1192" height="1190" rx="3.75" ry="3.75" fill="#333333" 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 center; width: 1194px; height: 1px; padding-top: 211px; margin-left: 361px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 1192px; "><div style="display: inline-block; font-size: 30px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><b style="font-size: 30px"><font color="#ffffff" style="font-size: 30px">sarah</font></b></div></div></div></foreignObject><text x="958" y="241" fill="#000000" font-family="Helvetica" font-size="30px" text-anchor="middle">sarah</text></switch></g><rect x="1129" y="231" width="376" height="520" rx="3.75" ry="3.75" fill="#006600" stroke="#ffffff" stroke-width="1.5" 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 center; width: 378px; height: 1px; padding-top: 241px; margin-left: 1128px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 376px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; ">sarah.Bot</div></div></div></foreignObject><text x="1317" y="261" fill="#ffffff" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">sarah.Bot</text></switch></g><rect x="1162" y="324" width="310" height="230" rx="3.75" ry="3.75" fill="#009900" stroke="#ffffff" stroke-width="2" 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 center; width: 312px; height: 1px; padding-top: 334px; margin-left: 1161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 310px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><b><font style="font-size: 20px">sarah.Commands</font></b></div></div></div></foreignObject><text x="1317" y="347" fill="#ffffff" font-family="Helvetica" font-size="13px" text-anchor="middle">sarah.Commands</text></switch></g><rect x="406" y="231" width="406" height="280" rx="3.75" ry="3.75" fill="#006666" stroke="#ffffff" stroke-width="2" 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 center; width: 408px; height: 1px; padding-top: 241px; margin-left: 405px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 406px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; "><font style="font-size: 20px"><span>workers.Worker</span></font></div></div></div></foreignObject><text x="609" y="254" fill="#ffffff" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">workers.Worker</text></switch></g><path d="M 1645.25 459 C 1603.85 459 1593.5 499 1626.62 507 C 1593.5 524.6 1630.76 563 1657.67 547 C 1676.3 579 1738.4 579 1759.1 547 C 1800.5 547 1800.5 515 1774.63 499 C 1800.5 467 1759.1 435 1722.88 451 C 1697 427 1655.6 427 1645.25 459 Z" fill="#ffffff" stroke="#000000" stroke-width="1.5" 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: 203px; height: 1px; padding-top: 499px; margin-left: 1596px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 201px; max-height: 154px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; "><font style="font-size: 20px">Chat Service</font></div></div></div></foreignObject><text x="1697" y="503" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">Chat Service</text></switch></g><ellipse cx="1705.5" cy="470" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><ellipse cx="1705.5" cy="530" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><ellipse cx="1332" cy="291" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 1956 470.53 L 1728.85 470.53" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1719.85 470.53 L 1728.85 467.53 L 1728.85 473.53 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" 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: 471px; margin-left: 1862px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Input message</div></div></div></foreignObject><text x="1862" y="475" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Input message</text></switch></g><path d="M 1705.5 459 L 1705.47 296 Q 1705.47 291 1700.47 291 L 1355.15 291" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1346.15 291 L 1355.15 288 L 1355.15 294 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1029.5" cy="290" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 1321.28 290.34 L 1052.61 290.01" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1043.61 290 L 1052.62 287.01 L 1052.61 293.01 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1018.84 289.18 L 735.11 289.97" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 726.11 289.99 L 735.11 286.97 L 735.12 292.97 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="712" cy="290" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 701.24 290 L 604.35 290" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 595.35 290 L 604.35 287 L 604.35 293 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 591 318.25 L 621.53 318.29 Q 626.53 318.29 626.53 323.29 L 626.53 388.47 Q 626.53 393.47 631.53 393.47 L 649.65 393.49" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 658.65 393.5 L 649.64 396.49 L 649.65 390.49 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="1199" cy="619" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 1199 629.82 L 1199 671.06 Q 1199 676.06 1204 676.06 L 1368.95 676" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1377.95 676 L 1368.95 679 L 1368.95 673 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" 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 flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 664px; margin-left: 1272px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #006600; white-space: nowrap; "><font style="font-size: 14px" color="#ffffff">Send command's<br />response</font></div></div></div></foreignObject><text x="1272" y="677" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">Send command's...</text></switch></g><path d="M 1309 509 L 1352.06 509 Q 1362.06 509 1362.05 499 L 1362.01 463.35" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1362 454.35 L 1365.01 463.35 L 1359.01 463.36 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" 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: 486px; margin-left: 1364px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; background-color: #009900; white-space: nowrap; ">Execute</div></div></div></foreignObject><text x="1364" y="490" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle">Execute</text></switch></g><ellipse cx="1299" cy="509" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 1199 608.18 L 1199 514 Q 1199 509 1204 509 L 1275.89 509" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1284.89 509 L 1275.89 512 L 1275.89 506 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1209.76 619 L 1264.87 619" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1273.87 619 L 1264.87 622 L 1264.87 616 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1402.7 676 L 1700.47 676.06 Q 1705.47 676.06 1705.47 671.06 L 1705.5 553.37" fill="none" stroke="#c92d39" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1705.5 544.37 L 1708.5 553.37 L 1702.5 553.37 Z" fill="#c92d39" stroke="#c92d39" stroke-width="3" 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: 622px; margin-left: 1706px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Send message</div></div></div></foreignObject><text x="1706" y="626" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Send message</text></switch></g><path d="M 1716.5 530 L 1943.65 530.5" fill="none" stroke="#c92d39" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1952.65 530.52 L 1943.64 533.5 L 1943.65 527.5 Z" fill="#c92d39" stroke="#c92d39" stroke-width="3" 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: 531px; margin-left: 1874px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Respond</div></div></div></foreignObject><text x="1874" y="535" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Respond</text></switch></g><path d="M 517 442 L 516.56 345.35" fill="none" stroke="#990099" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 516.52 336.35 L 519.56 345.34 L 513.56 345.37 Z" fill="#990099" stroke="#990099" stroke-width="3" 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: 395px; margin-left: 520px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; background-color: #006666; white-space: nowrap; ">Supervise queue length</div></div></div></foreignObject><text x="520" y="399" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle">Supervise queue length</text></switch></g><rect x="406" y="1131" width="626" height="227" rx="3.75" ry="3.75" fill="#660000" stroke="#ffffff" stroke-width="2" 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 center; width: 628px; height: 1px; padding-top: 1141px; margin-left: 405px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 626px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #FFF; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; ">stashed props</div></div></div></foreignObject><text x="719" y="1161" fill="#FFF" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">stashed props</text></switch></g><rect x="429" y="1182" width="263" height="155" rx="3.75" ry="3.75" fill="#cc0000" stroke="#ffffff" stroke-width="2" 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 center; width: 265px; height: 1px; padding-top: 1192px; margin-left: 428px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 263px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">[]*sarah.CommandProps</div></div></div></foreignObject><text x="561" y="1212" fill="#FFFFFF" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold" font-style="italic">[]*sarah.CommandProps</text></switch></g><path d="M 796 1241.96 L 796.06 656.06 Q 796.06 646.06 786.06 646.06 L 610.35 646" fill="none" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 601.35 646 L 610.35 643 L 610.35 649 Z" fill="#19967d" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 796.3 1241.58 L 796.29 1061 Q 796.29 1051 786.29 1051 L 542.06 1051 Q 532.06 1051 532.05 1041 L 532.01 957.35" fill="none" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 532 948.35 L 535.01 957.35 L 529.01 957.36 Z" fill="#19967d" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="712" y="1241" width="300" height="96" rx="3.75" ry="3.75" fill="#cc0000" stroke="#ffffff" stroke-width="2" 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 center; width: 302px; height: 1px; padding-top: 1251px; margin-left: 711px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 300px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">[]*sarah.ScheduledTaskProps</div></div></div></foreignObject><text x="862" y="1271" fill="#FFFFFF" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold" font-style="italic">[]*sarah.ScheduledTaskProps</text></switch></g><rect x="784.5" y="1281" width="155" height="45" rx="6.75" ry="6.75" fill="#ff0000" stroke="#ffffff" stroke-width="2" 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: 153px; height: 1px; padding-top: 1304px; margin-left: 786px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">alarmTaskProps</div></div></div></foreignObject><text x="862" y="1308" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">alarmTaskProps</text></switch></g><rect x="453.5" y="1281" width="203" height="45" rx="6.75" ry="6.75" fill="#ff0000" stroke="#ffffff" stroke-width="2" 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: 201px; height: 1px; padding-top: 1304px; margin-left: 455px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">echoProps</div></div></div></foreignObject><text x="555" y="1308" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">echoProps</text></switch></g><rect x="453.5" y="1229" width="203" height="45" rx="6.75" ry="6.75" fill="#ff0000" stroke="#ffffff" stroke-width="2" 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: 201px; height: 1px; padding-top: 1252px; margin-left: 455px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">weatherProps</div></div></div></foreignObject><text x="555" y="1256" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">weatherProps</text></switch></g><path d="M 1639.5 1279.5 C 1601.5 1279.5 1592 1315 1622.4 1322.1 C 1592 1337.72 1626.2 1371.8 1650.9 1357.6 C 1668 1386 1725 1386 1744 1357.6 C 1782 1357.6 1782 1329.2 1758.25 1315 C 1782 1286.6 1744 1258.2 1710.75 1272.4 C 1687 1251.1 1649 1251.1 1639.5 1279.5 Z" fill="#ffffff" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><rect x="1245.09" y="1279.75" width="163.81" height="46.25" rx="6.94" ry="6.94" fill="#660066" stroke="#ffffff" stroke-width="2" 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: 162px; height: 1px; padding-top: 1303px; margin-left: 1246px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="color: rgb(255 , 255 , 255) ; font-size: 14px ; font-style: italic ; font-weight: 700">sarah.ConfigWatcher</span></div></div></div></foreignObject><text x="1327" y="1307" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">sarah.ConfigWatcher</text></switch></g><path d="M 1413 1302.88 L 1581.01 1302.99" fill="none" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1590.01 1303 L 1581.01 1307.49 L 1581.02 1298.49 Z" fill="#19967d" stroke="#19967d" stroke-width="3" 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: 1304px; margin-left: 1483px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; background-color: #333333; white-space: nowrap; ">Subscribe to <br />changes</div></div></div></foreignObject><text x="1483" y="1308" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle">Subscribe to...</text></switch></g><path d="M 1240.99 1302.88 L 952.63 1303.69" fill="none" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 943.63 1303.72 L 952.62 1299.19 L 952.64 1308.19 Z" fill="#19967d" stroke="#19967d" stroke-width="3" 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: 1304px; margin-left: 1139px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #333333; white-space: nowrap; "><font color="#ffffff" style="font-size: 14px">Find corresponding props<br style="font-size: 14px" />to updated configuration</font></div></div></div></foreignObject><text x="1139" y="1308" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Find corresponding props...</text></switch></g><path d="M 1996 1291 L 1996.03 1296.47 Q 1996.06 1301.47 1991.06 1301.47 L 1780.57 1301.5" fill="none" stroke="#19967d" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1771.57 1301.5 L 1780.57 1297 L 1780.57 1306 Z" fill="#19967d" stroke="#19967d" stroke-width="3" 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: 1302px; margin-left: 1888px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Update configuration</div></div></div></foreignObject><text x="1888" y="1306" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Update configuration</text></switch></g><rect x="406" y="591" width="192" height="110" rx="3.75" ry="3.75" fill="#b1ddf0" stroke="#ffffff" stroke-width="2" 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 center; width: 194px; height: 1px; padding-top: 601px; margin-left: 405px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 192px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; ">sarah.scheduler</div></div></div></foreignObject><text x="502" y="621" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">sarah.scheduler</text></switch></g><path d="M 501.71 701 L 501.71 797.98" fill="none" stroke="#fcc438" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 501.71 806.98 L 498.71 797.98 L 504.71 797.98 Z" fill="#fcc438" stroke="#fcc438" stroke-width="3" 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: 756px; margin-left: 502px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #333333; white-space: nowrap; "><font color="#ffffff" style="font-size: 14px">Execute ScheduledTask</font></div></div></div></foreignObject><text x="502" y="760" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Execute ScheduledTask</text></switch></g><path d="M 1400 196 L 1640 196 L 1655 211 L 1655 256 L 1400 256 L 1400 196 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 1640 196 L 1640 211 L 1655 211" fill="none" stroke="#000000" stroke-width="1.5" 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: 246px; height: 1px; padding-top: 226px; margin-left: 1407px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 244px; max-height: 54px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">Receive service-specific messages and c</span><span style="font-size: 13px">onvert them to </span><span style="font-size: 13px ; font-style: italic">sarah.Input</span><span style="font-size: 13px"> implementation.</span></span></div></div></div></div></foreignObject><text x="1530" y="230" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">Receive service-specific messages and...</text></switch></g><path d="M 942 151 L 1280 151 L 1295 166 L 1295 211 L 942 211 L 942 151 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 1280 151 L 1280 166 L 1295 166" fill="none" stroke="#000000" stroke-width="1.5" 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: 344px; height: 1px; padding-top: 181px; margin-left: 949px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 342px; max-height: 54px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">A function provided to each Bot by go-sarah's core </span><span style="font-size: 13px">to receive incoming payload and pass it to internal worker.</span></span></div></div></div></div></foreignObject><text x="1121" y="185" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">A function provided to each Bot by go-sarah's core to...</text></switch></g><path d="M 1398.22 248.02 L 1349.29 285.43" fill="none" stroke="#ffffff" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="3 8" pointer-events="stroke"/><path d="M 1343.33 289.98 L 1347.01 282.45 L 1351.57 288.41 Z" fill="#ffffff" stroke="#ffffff" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 1062 212 L 1033.49 270.98" fill="none" stroke="#ffffff" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="3 8" pointer-events="stroke"/><path d="M 1030.23 277.73 L 1030.12 269.35 L 1036.87 272.61 Z" fill="#ffffff" stroke="#ffffff" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><rect x="643.5" y="296" width="137" height="28" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" 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: 133px; height: 1px; padding-top: 310px; margin-left: 646px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 131px; max-height: 22px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">Worker.Enqueue()</div></div></div></foreignObject><text x="712" y="314" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">Worker.Enqueue()</text></switch></g><rect x="1114" y="621" width="180" height="25" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" 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: 176px; height: 1px; padding-top: 634px; margin-left: 1116px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 19px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">Bot.Respond()</div></div></div></foreignObject><text x="1204" y="638" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">Bot.Respond()</text></switch></g><rect x="1129" y="1150.75" width="150" height="94" rx="3.75" ry="3.75" fill="#000066" stroke="#ffffff" stroke-width="2" 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 center; width: 152px; height: 1px; padding-top: 1161px; margin-left: 1128px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 150px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">sarah.alerters</div></div></div></foreignObject><text x="1204" y="1181" fill="#FFFFFF" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold" font-style="italic">sarah.alerters</text></switch></g><ellipse cx="1205" cy="1206" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 1796.75 1170.25 C 1768.95 1170.25 1762 1200.75 1784.24 1206.85 C 1762 1220.27 1787.02 1249.55 1805.09 1237.35 C 1817.6 1261.75 1859.3 1261.75 1873.2 1237.35 C 1901 1237.35 1901 1212.95 1883.63 1200.75 C 1901 1176.35 1873.2 1151.95 1848.88 1164.15 C 1831.5 1145.85 1803.7 1145.85 1796.75 1170.25 Z" fill="#ffffff" stroke="#000000" stroke-width="1.5" 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: 135px; height: 1px; padding-top: 1201px; margin-left: 1764px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 133px; max-height: 116px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><font style="font-size: 20px"><b>Alerting Service</b></font></div></div></div></foreignObject><text x="1832" y="1205" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Alerting Service</text></switch></g><path d="M 990 913 L 990 1016 Q 990 1021 990 1018.82 L 990 1016.65" fill="none" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 990 1025.65 L 987 1016.65 L 993 1016.65 Z" fill="#834187" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1897.53 1199.65 L 1941.15 1199.88" fill="none" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1950.15 1199.92 L 1941.12 1204.38 L 1941.17 1195.38 Z" fill="#834187" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1215.52 1206 L 1749.89 1205.83" fill="none" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1758.89 1205.82 L 1749.89 1208.83 L 1749.89 1202.83 Z" fill="#834187" stroke="#834187" stroke-width="3" 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: 1206px; margin-left: 1472px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; background-color: #333333; white-space: nowrap; ">Notify critical state</div></div></div></foreignObject><text x="1472" y="1211" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle">Notify critical state</text></switch></g><rect x="1115" y="1202.75" width="180" height="43.75" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" 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: 176px; height: 1px; padding-top: 1225px; margin-left: 1117px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 38px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">alerters.alertAll()</div></div></div></foreignObject><text x="1205" y="1229" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">alerters.alertAll()</text></switch></g><rect x="1217" y="513" width="20" height="20" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0" stroke-width="2" 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: 16px; height: 1px; padding-top: 523px; margin-left: 1219px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 14px; max-height: 14px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; "><font color="#ffffff" style="font-size: 14px">Commands.ExecuteFirstMatched()</font></div></div></div></foreignObject><text x="1227" y="527" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">Co...</text></switch></g><rect x="1302" y="686" width="180" height="20" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" 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: 176px; height: 1px; padding-top: 696px; margin-left: 1304px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 14px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; width: 100%; background-color: #006600; white-space: normal; word-wrap: normal; "><font style="font-size: 14px" color="#ffffff"><b style="font-size: 14px">Bot.SendMessage()</b></font></div></div></div></foreignObject><text x="1392" y="700" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-style="italic">Bot.SendMessage()</text></switch></g><path d="M 1152.28 576.99 L 1182.27 612.03" fill="none" stroke="#ffffff" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="3 8" pointer-events="stroke"/><path d="M 1187.15 617.73 L 1179.42 614.47 L 1185.12 609.59 Z" fill="#ffffff" stroke="#ffffff" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 232 1091 L 484 1091 L 499 1106 L 499 1166 L 232 1166 L 232 1091 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 484 1091 L 484 1106 L 499 1106" fill="none" stroke="#000000" stroke-width="1.5" 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: 258px; height: 1px; padding-top: 1129px; margin-left: 239px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 256px; max-height: 69px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">Props is a set of arguments to build<br /></span></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px ; font-style: italic">sarah.Command</span><span style="font-size: 13px"> or </span><span style="font-size: 13px ; font-style: italic">sarah.ScheduledTask</span><span style="font-size: 13px"><br /></span></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">on the fly.</span></span></div></div></div></div></foreignObject><text x="368" y="1132" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">Props is a set of arguments to build...</text></switch></g><rect x="446" y="984" width="180" height="45" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#ffffff" stroke-opacity="0" stroke-width="1.5" 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: 176px; height: 1px; padding-top: 1007px; margin-left: 448px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 39px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; background-color: #333333; white-space: normal; word-wrap: normal; "><font color="#ffffff" style="font-size: 14px">Replace existing task<br style="font-size: 14px" />with rebuilt one</font></div></div></div></foreignObject><text x="536" y="1011" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Replace existing task...</text></switch></g><rect x="1129" y="781" width="376" height="340" rx="3.75" ry="3.75" fill-opacity="0.5" fill="#006600" stroke="#ffffff" stroke-opacity="0.5" stroke-width="2" stroke-dasharray="2 2" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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 center; width: 378px; height: 1px; padding-top: 791px; margin-left: 1128px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 376px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; ">sarah.Bot</div></div></div></foreignObject><text x="1317" y="811" fill="#ffffff" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">sarah.Bot</text></switch></g><ellipse cx="1392" cy="676" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><rect x="1162" y="861" width="310" height="102" rx="3.75" ry="3.75" fill-opacity="0.5" fill="#009900" stroke="#ffffff" stroke-opacity="0.5" stroke-width="2" stroke-dasharray="2 2" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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 center; width: 312px; height: 1px; padding-top: 871px; margin-left: 1161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 310px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; ">sarah.Commands</div></div></div></foreignObject><text x="1317" y="891" fill="#FFFFFF" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">sarah.Commands</text></switch></g><ellipse cx="1199" cy="1016.5" rx="10" ry="10" fill-opacity="0.5" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0.5" stroke-width="2" pointer-events="all"/><rect x="1109" y="1026.5" width="180" height="25" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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: 176px; height: 1px; padding-top: 1039px; margin-left: 1111px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 19px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">Bot.Respond()</div></div></div></foreignObject><text x="1199" y="1043" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">Bot.Respond()</text></switch></g><ellipse cx="1299" cy="917" rx="10" ry="10" fill-opacity="0.5" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0.5" stroke-width="2" pointer-events="all"/><rect x="1202" y="921" width="250" height="28" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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: 246px; height: 1px; padding-top: 935px; margin-left: 1204px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 244px; max-height: 22px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">Commands.ExecuteFirstMatched()</div></div></div></foreignObject><text x="1327" y="939" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">Commands.ExecuteFirstMatched()</text></switch></g><rect x="1302" y="1081" width="180" height="34" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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: 176px; height: 1px; padding-top: 1098px; margin-left: 1304px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 28px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">Bot.SendMessage()</div></div></div></foreignObject><text x="1392" y="1102" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">Bot.SendMessage()</text></switch></g><ellipse cx="1391" cy="1079" rx="10" ry="10" fill-opacity="0.5" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0.5" stroke-width="2" pointer-events="all"/><ellipse cx="1334" cy="831" rx="10" ry="10" fill-opacity="0.5" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0.5" stroke-width="2" pointer-events="all"/><ellipse cx="1705.5" cy="891" rx="10" ry="10" fill-opacity="0.5" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0.5" stroke-width="2" pointer-events="all"/><ellipse cx="1705.5" cy="945" rx="10" ry="10" fill-opacity="0.5" fill="#ffffff" stroke="#4d4d4d" stroke-opacity="0.5" stroke-width="2" pointer-events="all"/><path d="M 1705.5 880 L 1705.47 836 Q 1705.47 831 1700.47 831 L 1357.07 831" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1348.07 831 L 1357.07 826.5 L 1357.07 835.5 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1401.7 1079 L 1700.47 1079 Q 1705.47 1079 1705.47 1074 L 1705.5 968.37" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1705.5 959.37 L 1710 968.38 L 1701 968.37 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1199 1027.32 L 1199 1074 Q 1199 1079 1204 1079 L 1367.95 1079" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1376.95 1079 L 1367.95 1083.5 L 1367.95 1074.5 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1209.76 1016.5 L 1265.65 1016.5" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1274.65 1016.5 L 1265.65 1021 L 1265.65 1012 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1199 1005.68 L 1199 922 Q 1199 917 1204 917 L 1275.89 917" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1284.89 917 L 1275.89 921.5 L 1275.89 912.5 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1953.5 890.53 L 1728.85 890.53" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1719.85 890.53 L 1728.85 886.03 L 1728.85 895.03 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1716.5 945 L 1941.15 944.67" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1950.15 944.65 L 1941.15 949.17 L 1941.14 940.17 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1460 771.5 L 1640 771.5 L 1655 786.5 L 1655 820.5 L 1460 820.5 L 1460 771.5 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 1640 771.5 L 1640 786.5 L 1655 786.5" fill="none" stroke="#000000" stroke-width="1.5" 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: 186px; height: 1px; padding-top: 796px; margin-left: 1467px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 184px; max-height: 43px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; line-height: 1.25 ; margin-top: -2px"><span style="font-size: 13px">Multiple </span><span style="font-size: 13px ; font-style: italic">sarah.Bot</span><span style="font-size: 13px"> </span><span>instances</span><span style="font-size: 13px"><br /></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">may run in one process</span></span><span><span style="font-size: 13px">.</span></span></div></div></div></div></foreignObject><text x="1560" y="800" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">Multiple sarah.Bot instances...</text></switch></g><path d="M 1710.5 1343 L 2079.5 1343 L 2094.5 1358 L 2094.5 1381 L 1710.5 1381 L 1710.5 1343 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 2079.5 1343 L 2079.5 1358 L 2094.5 1358" fill="none" stroke="#000000" stroke-width="1.5" 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: 375px; height: 1px; padding-top: 1362px; margin-left: 1717px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 373px; max-height: 32px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span>&lt;span style="font-size:13px;"&gt;Variety of configuration management systems can be treated<br /></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">File system, HashiCorp's Consul, LINE's Central Dogma, etc...</span></span></div></div></div></div></foreignObject><text x="1905" y="1366" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">&lt;span style="font-size:13px;"&gt;Variety of configuration man...</text></switch></g><rect x="542" y="61" width="1143" height="60" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" 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-end; justify-content: unsafe center; width: 1139px; height: 1px; padding-top: 118px; margin-left: 544px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 1137px; "><div style="display: inline-block; font-size: 50px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; width: 100%; white-space: normal; word-wrap: normal; ">Illustration of go-sarah's Major Components</div></div></div></foreignObject><text x="1114" y="118" fill="#000000" font-family="Helvetica" font-size="50px" text-anchor="middle" font-weight="bold">Illustration of go-sarah's Major Components</text></switch></g><rect x="702" y="900" width="180" height="45" rx="3.75" ry="3.75" fill="none" stroke="#ffffff" stroke-opacity="0" stroke-width="1.5" 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: 176px; height: 1px; padding-top: 922px; margin-left: 704px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 174px; max-height: 39px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; background-color: #333333; white-space: normal; word-wrap: normal; "><font color="#ffffff" style="font-size: 14px">Update task schedule</font></div></div></div></foreignObject><text x="792" y="927" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">Update task schedule</text></switch></g><path d="M 98 641 L 431 641 L 446 656 L 446 727 L 98 727 L 98 641 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 431 641 L 431 656 L 446 656" fill="none" stroke="#000000" stroke-width="1.5" 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: 339px; height: 1px; padding-top: 684px; margin-left: 105px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 337px; max-height: 80px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; line-height: 1.25 ; margin-top: -2px">Manage task schedules.<br /></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">While </span><span style="font-size: 13px ; font-style: italic">sarah.Command</span><span style="font-size: 13px">s are executed against a user input, </span><span style="font-size: 13px ; font-style: italic">sarah.ScheduledTask</span><span style="font-size: 13px">s are executed in a scheduled manner.</span></span></div></div></div></div></foreignObject><text x="275" y="688" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">Manage task schedules....</text></switch></g><path d="M 1872 1061 L 2157 1061 L 2172 1076 L 2172 1120.5 L 1872 1120.5 L 1872 1061 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 2157 1061 L 2157 1076 L 2172 1076" fill="none" stroke="#000000" stroke-width="1.5" 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 flex-start; width: 291px; height: 1px; padding-top: 1091px; margin-left: 1880px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 289px; max-height: 53px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; align-items: baseline ; font-size: 0px ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">Slack message, e-mail, LINE message, etc...<br /></span><span style="font-size: 13px">Any <i>sarah.Alerter</i> implementation works.</span></span></div></div></div></div></foreignObject><text x="1880" y="1095" fill="#000000" font-family="Helvetica" font-size="13px">Slack message, e-mail, LINE message, etc......</text></switch></g><path d="M 1902.9 1123.83 L 1881.56 1149.53" fill="none" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="3 8" pointer-events="stroke"/><path d="M 1876.77 1155.3 L 1878.68 1147.13 L 1884.45 1151.92 Z" fill="#000000" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="990" cy="1039" rx="10" ry="10" fill="#ffffff" stroke="#4d4d4d" stroke-width="2" pointer-events="all"/><path d="M 1000 1039 L 1063 1039 Q 1068 1039 1068 1044 L 1068 1201.58 Q 1068 1206.58 1073 1206.58 L 1182.19 1206.58" fill="none" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1191.19 1206.58 L 1182.19 1209.58 L 1182.19 1203.58 Z" fill="#834187" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="852" y="1039.5" width="268.5" height="41" rx="3.75" ry="3.75" fill-opacity="0" fill="#ffffff" stroke="#000000" stroke-opacity="0" stroke-width="1.5" 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: 265px; height: 1px; padding-top: 1060px; margin-left: 854px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 263px; max-height: 35px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; "><font color="#ffffff" style="font-size: 14px">func(BotType, error) *SupervisionDirective</font></div></div></div></foreignObject><text x="986" y="1064" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-style="italic">func(BotType, error) *SupervisionDirec...</text></switch></g><rect x="949" y="300" width="165" height="24" fill-opacity="0" fill="#ffffff" 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: 161px; height: 1px; padding-top: 303px; margin-left: 952px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 159px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">func(sarah.Input) error</div></div></div></foreignObject><text x="952" y="317" fill="#FFFFFF" font-family="Helvetica" font-size="14px" font-weight="bold" font-style="italic">func(sarah.Input) error</text></switch></g><path d="M 1998.4 481.12 C 1985.52 481.12 1973.49 471.15 1973.49 455.69 L 1973.52 450.21 C 1973.52 437.72 1984.43 426 1998.49 426 C 2012.12 426 2023.26 437.04 2023.26 450.8 L 2023.26 456.23 C 2023.26 469.37 2012.91 481.12 1998.4 481.12 Z M 2041 545 L 2024.75 545 L 2024.75 522.83 L 2022.02 522.83 L 2022.02 545 L 1975.63 545 L 1975.63 522.83 L 1972.87 522.83 L 1972.87 545 L 1956 545 L 1956 507.65 C 1956 492.72 1968.68 482.82 1984.09 482.82 L 2013.19 482.82 C 2027.56 482.82 2041 492.24 2041 507.88 Z" fill="#d2d3d3" stroke="none" pointer-events="all"/><path d="M 1972.87 545 L 1956 545 L 1956 539.66 L 1972.87 539.66 Z M 1975.63 522.83 L 1972.87 522.83 L 1972.87 517.53 L 1975.63 517.53 Z M 2022.02 545 L 1975.63 545 L 1975.63 539.66 L 2022.02 539.66 Z M 2024.75 522.83 L 2022.02 522.83 L 2022.02 517.53 L 2024.75 517.53 Z M 2041 545 L 2024.75 545 L 2024.75 539.66 L 2041 539.66 Z M 1998.4 481.12 C 1985.55 481.12 1973.49 471.13 1973.49 455.69 L 1973.52 450.69 C 1973.52 466.73 1986.73 475.81 1998.43 475.81 C 2012.26 475.81 2023.26 464.57 2023.26 450.8 L 2023.26 456.23 C 2023.26 469.28 2012.97 481.12 1998.4 481.12 Z" fill-opacity="0.3" fill="#000000" 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 center; width: 1px; height: 1px; padding-top: 552px; margin-left: 1999px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; ">User</div></div></div></foreignObject><text x="1999" y="572" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">User</text></switch></g><path d="M 1995.9 900.12 C 1983.02 900.12 1970.99 890.15 1970.99 874.69 L 1971.02 869.21 C 1971.02 856.72 1981.93 845 1995.99 845 C 2009.62 845 2020.76 856.04 2020.76 869.8 L 2020.76 875.23 C 2020.76 888.37 2010.41 900.12 1995.9 900.12 Z M 2038.5 964 L 2022.25 964 L 2022.25 941.83 L 2019.52 941.83 L 2019.52 964 L 1973.13 964 L 1973.13 941.83 L 1970.37 941.83 L 1970.37 964 L 1953.5 964 L 1953.5 926.65 C 1953.5 911.72 1966.18 901.82 1981.59 901.82 L 2010.69 901.82 C 2025.06 901.82 2038.5 911.24 2038.5 926.88 Z" fill="#d2d3d3" stroke="none" pointer-events="all"/><path d="M 1970.37 964 L 1953.5 964 L 1953.5 958.66 L 1970.37 958.66 Z M 1973.13 941.83 L 1970.37 941.83 L 1970.37 936.53 L 1973.13 936.53 Z M 2019.52 964 L 1973.13 964 L 1973.13 958.66 L 2019.52 958.66 Z M 2022.25 941.83 L 2019.52 941.83 L 2019.52 936.53 L 2022.25 936.53 Z M 2038.5 964 L 2022.25 964 L 2022.25 958.66 L 2038.5 958.66 Z M 1995.9 900.12 C 1983.05 900.12 1970.99 890.13 1970.99 874.69 L 1971.02 869.69 C 1971.02 885.73 1984.23 894.81 1995.93 894.81 C 2009.76 894.81 2020.76 883.57 2020.76 869.8 L 2020.76 875.23 C 2020.76 888.28 2010.47 900.12 1995.9 900.12 Z" fill-opacity="0.3" fill="#000000" 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 center; width: 1px; height: 1px; padding-top: 971px; margin-left: 1996px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; ">User</div></div></div></foreignObject><text x="1996" y="991" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">User</text></switch></g><rect x="1334.6" y="369" width="56.4" height="60" fill="none" stroke="none" pointer-events="all"/><path d="M 1376.61 387.08 L 1377.94 387.08 Q 1379.14 388.95 1379.72 390.73 Q 1380.34 392.51 1380.34 394.3 Q 1380.34 396.08 1379.72 397.86 Q 1379.14 399.65 1377.94 401.51 L 1376.61 401.51 Q 1377.69 399.69 1378.23 397.91 Q 1378.77 396.12 1378.77 394.3 Q 1378.77 392.47 1378.23 390.69 Q 1377.69 388.91 1376.61 387.08 Z M 1373.87 394.01 L 1373.87 399.36 L 1372.38 399.36 L 1372.38 394.09 Q 1372.38 392.84 1371.88 392.19 Q 1371.38 391.58 1370.35 391.58 Q 1369.15 391.58 1368.48 392.31 Q 1367.78 393.08 1367.78 394.38 L 1367.78 399.36 L 1366.28 399.36 L 1366.28 390.53 L 1367.78 390.53 L 1367.78 391.91 Q 1368.32 391.09 1369.02 390.69 Q 1369.77 390.28 1370.68 390.28 Q 1372.26 390.28 1373.08 391.26 Q 1373.87 392.19 1373.87 394.01 Z M 1363.42 387.08 Q 1362.34 388.91 1361.8 390.69 Q 1361.31 392.47 1361.31 394.3 Q 1361.31 396.12 1361.8 397.91 Q 1362.34 399.69 1363.42 401.51 L 1362.14 401.51 Q 1360.93 399.65 1360.31 397.86 Q 1359.69 396.08 1359.69 394.3 Q 1359.69 392.51 1360.31 390.73 Q 1360.89 388.95 1362.14 387.08 L 1363.42 387.08 Z M 1358.61 387.08 L 1358.61 388.26 L 1357.2 388.26 Q 1356.37 388.26 1356.08 388.58 Q 1355.75 388.91 1355.75 389.72 L 1355.75 390.53 L 1358.2 390.53 L 1358.2 391.66 L 1355.75 391.66 L 1355.75 399.36 L 1354.26 399.36 L 1354.26 391.66 L 1352.85 391.66 L 1352.85 390.53 L 1354.26 390.53 L 1354.26 389.88 Q 1354.26 388.42 1354.96 387.73 Q 1355.67 387.08 1357.2 387.08 L 1358.61 387.08 Z M 1349.94 422.51 C 1349.94 424.54 1349.11 426.57 1348.29 427.38 C 1347.04 428.59 1344.55 429 1344.55 429 L 1385.19 429 L 1386.44 429 C 1386.44 429 1386.44 429 1386.44 429 C 1387.68 429 1388.93 428.19 1389.76 426.97 C 1390.59 425.76 1391 424.14 1391 422.11 L 1380.63 422.11 L 1349.94 422.51 L 1349.94 422.51 Z M 1344.55 429 M 1346.63 425.76 C 1347.46 424.95 1347.87 423.73 1347.87 422.11 L 1347.87 420.08 L 1349.94 420.08 L 1380.22 420.08 C 1380.22 419.27 1380.22 418.46 1380.22 418.05 C 1380.22 407.51 1389.76 392.11 1389.76 379.95 C 1389.76 370.22 1380.22 369 1380.22 369 L 1346.21 369 L 1338.75 369 C 1338.75 369 1346.21 370.62 1347.87 377.11 C 1348.29 377.92 1348.29 378.73 1348.29 379.95 C 1348.29 392.11 1338.75 407.51 1338.75 418.05 C 1338.75 419.27 1338.75 420.89 1339.16 422.11 C 1339.58 423.32 1339.99 424.14 1340.82 424.95 C 1341.24 425.35 1341.65 425.76 1342.48 426.16 C 1342.89 426.57 1343.72 426.97 1344.14 426.97 C 1344.97 426.97 1345.8 426.57 1346.63 425.76 Z M 1344.97 375.89 C 1344.14 374.68 1343.31 373.86 1342.48 373.05 C 1340.41 371.84 1338.33 371.03 1338.33 371.03 L 1335.43 370.22 C 1335.01 371.03 1334.6 371.84 1334.6 372.65 C 1334.6 376.3 1335.84 377.11 1335.84 377.11 L 1345.8 377.11 C 1345.38 376.7 1345.38 376.3 1344.97 375.89 Z" fill="#ffffff" 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 center; width: 1px; height: 1px; padding-top: 436px; margin-left: 1363px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; "><font style="font-size: 14px">.echo</font></div></div></div></foreignObject><text x="1363" y="450" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">.echo</text></switch></g><rect x="1237.6" y="369" width="56.4" height="60" fill="none" stroke="none" pointer-events="all"/><path d="M 1279.61 387.08 L 1280.94 387.08 Q 1282.14 388.95 1282.72 390.73 Q 1283.34 392.51 1283.34 394.3 Q 1283.34 396.08 1282.72 397.86 Q 1282.14 399.65 1280.94 401.51 L 1279.61 401.51 Q 1280.69 399.69 1281.23 397.91 Q 1281.77 396.12 1281.77 394.3 Q 1281.77 392.47 1281.23 390.69 Q 1280.69 388.91 1279.61 387.08 Z M 1276.87 394.01 L 1276.87 399.36 L 1275.38 399.36 L 1275.38 394.09 Q 1275.38 392.84 1274.88 392.19 Q 1274.38 391.58 1273.35 391.58 Q 1272.15 391.58 1271.48 392.31 Q 1270.78 393.08 1270.78 394.38 L 1270.78 399.36 L 1269.28 399.36 L 1269.28 390.53 L 1270.78 390.53 L 1270.78 391.91 Q 1271.32 391.09 1272.02 390.69 Q 1272.77 390.28 1273.68 390.28 Q 1275.26 390.28 1276.08 391.26 Q 1276.87 392.19 1276.87 394.01 Z M 1266.42 387.08 Q 1265.34 388.91 1264.8 390.69 Q 1264.31 392.47 1264.31 394.3 Q 1264.31 396.12 1264.8 397.91 Q 1265.34 399.69 1266.42 401.51 L 1265.14 401.51 Q 1263.93 399.65 1263.31 397.86 Q 1262.69 396.08 1262.69 394.3 Q 1262.69 392.51 1263.31 390.73 Q 1263.89 388.95 1265.14 387.08 L 1266.42 387.08 Z M 1261.61 387.08 L 1261.61 388.26 L 1260.2 388.26 Q 1259.37 388.26 1259.08 388.58 Q 1258.75 388.91 1258.75 389.72 L 1258.75 390.53 L 1261.2 390.53 L 1261.2 391.66 L 1258.75 391.66 L 1258.75 399.36 L 1257.26 399.36 L 1257.26 391.66 L 1255.85 391.66 L 1255.85 390.53 L 1257.26 390.53 L 1257.26 389.88 Q 1257.26 388.42 1257.96 387.73 Q 1258.67 387.08 1260.2 387.08 L 1261.61 387.08 Z M 1252.94 422.51 C 1252.94 424.54 1252.11 426.57 1251.29 427.38 C 1250.04 428.59 1247.55 429 1247.55 429 L 1288.19 429 L 1289.44 429 C 1289.44 429 1289.44 429 1289.44 429 C 1290.68 429 1291.93 428.19 1292.76 426.97 C 1293.59 425.76 1294 424.14 1294 422.11 L 1283.63 422.11 L 1252.94 422.51 L 1252.94 422.51 Z M 1247.55 429 M 1249.63 425.76 C 1250.46 424.95 1250.87 423.73 1250.87 422.11 L 1250.87 420.08 L 1252.94 420.08 L 1283.22 420.08 C 1283.22 419.27 1283.22 418.46 1283.22 418.05 C 1283.22 407.51 1292.76 392.11 1292.76 379.95 C 1292.76 370.22 1283.22 369 1283.22 369 L 1249.21 369 L 1241.75 369 C 1241.75 369 1249.21 370.62 1250.87 377.11 C 1251.29 377.92 1251.29 378.73 1251.29 379.95 C 1251.29 392.11 1241.75 407.51 1241.75 418.05 C 1241.75 419.27 1241.75 420.89 1242.16 422.11 C 1242.58 423.32 1242.99 424.14 1243.82 424.95 C 1244.24 425.35 1244.65 425.76 1245.48 426.16 C 1245.89 426.57 1246.72 426.97 1247.14 426.97 C 1247.97 426.97 1248.8 426.57 1249.63 425.76 Z M 1247.97 375.89 C 1247.14 374.68 1246.31 373.86 1245.48 373.05 C 1243.41 371.84 1241.33 371.03 1241.33 371.03 L 1238.43 370.22 C 1238.01 371.03 1237.6 371.84 1237.6 372.65 C 1237.6 376.3 1238.84 377.11 1238.84 377.11 L 1248.8 377.11 C 1248.38 376.7 1248.38 376.3 1247.97 375.89 Z" fill="#ffffff" 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 center; width: 1px; height: 1px; padding-top: 436px; margin-left: 1266px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; "><font style="font-size: 14px">.weather</font></div></div></div></foreignObject><text x="1266" y="450" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">.weather</text></switch></g><path d="M 1830.89 417.27 C 1804.56 406.27 1802 388.13 1825.02 375.76 C 1848.04 363.39 1888.79 361 1918.3 370.3 C 1947.8 379.6 1956 397.4 1937.06 411.06 C 1918.12 424.71 1878.5 429.56 1846.37 422.15 C 1839.14 431.32 1827.49 437.16 1814.71 438 C 1822.75 432.95 1828.48 425.61 1830.89 417.27 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="15" transform="translate(1879,0)scale(-1,1)translate(-1879,0)" 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: 152px; height: 1px; padding-top: 396px; margin-left: 1803px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>.echo</b> Yoo-hoo!!</div></div></div></foreignObject><text x="1879" y="400" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">.echo Yoo-hoo!!</text></switch></g><path d="M 774 393.5 L 1082 393.5 Q 1092 393.5 1092 403.5 L 1092 1006.5 Q 1092 1016.5 1102 1016.5 L 1176.65 1016.5" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1185.65 1016.5 L 1176.65 1019.5 L 1176.65 1013.5 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="662" y="442" width="112" height="45" rx="6.75" ry="6.75" fill="#009999" stroke="#ffffff" stroke-width="2" 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: 110px; height: 1px; padding-top: 465px; margin-left: 663px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font>Child Worker</font></div></div></div></foreignObject><text x="718" y="469" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">Child Worker</text></switch></g><rect x="1633.5" y="1353" width="39" height="30" fill="#ffffff" stroke="none" pointer-events="all"/><rect x="1633.5" y="1336" width="40" height="47" fill="none" stroke="none" pointer-events="all"/><path d="M 1643.31 1360.61 L 1643.31 1358.38 L 1663.69 1358.38 L 1663.69 1360.61 Z M 1643.31 1366.58 L 1643.31 1364.35 L 1663.69 1364.35 L 1663.69 1366.58 Z M 1643.31 1372.55 L 1643.31 1370.31 L 1663.69 1370.31 L 1663.69 1372.55 Z M 1635.76 1380.77 L 1671.24 1380.77 L 1671.24 1350.18 L 1659.92 1350.18 L 1659.92 1338.24 L 1635.76 1338.24 Z M 1633.5 1383 L 1633.5 1336 L 1661.42 1336 L 1673.5 1347.94 L 1673.5 1383 Z" fill="#080808" 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 center; width: 1px; height: 1px; padding-top: 1390px; margin-left: 1654px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #FFFFFF; white-space: nowrap; ">weather.json<br style="font-size: 14px" /></div></div></div></foreignObject><text x="1654" y="1404" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">weathe...</text></switch></g><rect x="484.5" y="632" width="35" height="35" fill="none" stroke="none" pointer-events="all"/><path d="M 509.91 655.58 C 510.24 655.87 510.3 656.4 509.96 656.79 C 509.68 657.07 509.22 657.21 508.81 656.94 L 501.17 651.06 C 501 650.89 500.85 650.71 500.85 650.34 L 500.85 637.53 C 500.85 637.01 501.32 636.67 501.73 636.67 C 502.28 636.67 502.6 637.17 502.6 637.53 L 502.6 649.97 Z M 502.09 664.11 C 510.71 664.11 516.59 656.84 516.59 649.52 C 516.59 640.62 509.26 634.92 502.04 634.92 C 492.46 634.92 487.43 643.21 487.43 649.11 C 487.43 659.06 495.33 664.11 502.09 664.11 Z M 501.91 667 C 493.28 667 484.71 660.4 484.5 649.29 C 484.5 640.79 491.66 632 501.93 632 C 510.97 632 519.5 638.99 519.5 649.6 C 519.5 658.99 511.91 667 501.91 667 Z" fill="#505050" 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 center; width: 1px; height: 1px; padding-top: 674px; margin-left: 502px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; white-space: nowrap; ">cron.Cron</div></div></div></foreignObject><text x="502" y="688" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">cron....</text></switch></g><path d="M 488 240 C 488 234.48 500.76 230 516.5 230 C 524.06 230 531.31 231.05 536.65 232.93 C 542 234.8 545 237.35 545 240 L 545 369 C 545 374.52 532.24 379 516.5 379 C 500.76 379 488 374.52 488 369 Z" fill="#009999" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" transform="rotate(90,516.5,304.5)" pointer-events="all"/><path d="M 545 240 C 545 245.52 532.24 250 516.5 250 C 500.76 250 488 245.52 488 240" fill="none" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" transform="rotate(90,516.5,304.5)" 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: 121px; height: 1px; padding-top: 305px; margin-left: 448px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 119px; max-height: 51px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; "><font style="font-size: 14px" color="#ffffff"><span style="font-size: 14px">chan func()</span></font></div></div></div></foreignObject><text x="508" y="309" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">chan func()</text></switch></g><path d="M 1278 1041.5 L 1278 991.5 C 1278 984.6 1321.65 979 1375.5 979 C 1429.35 979 1473 984.6 1473 991.5 L 1473 1041.5 C 1473 1048.4 1429.35 1054 1375.5 1054 C 1321.65 1054 1278 1048.4 1278 1041.5 Z" fill-opacity="0.5" fill="#009900" stroke="#ffffff" stroke-opacity="0.5" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 2" pointer-events="all"/><path d="M 1278 991.5 C 1278 998.4 1321.65 1004 1375.5 1004 C 1429.35 1004 1473 998.4 1473 991.5" fill="none" stroke="#ffffff" stroke-opacity="0.5" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 2" pointer-events="all"/><g transform="translate(-0.5 -0.5)" opacity="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: 193px; height: 1px; padding-top: 1025px; margin-left: 1279px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font style="font-size: 14px"><span style="font-size: 14px">sarah.UserContextStorage</span></font></div></div></div></foreignObject><text x="1375" y="1029" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">sarah.UserContextStorage</text></switch></g><path d="M 1995.9 1190.12 C 1983.02 1190.12 1970.99 1180.15 1970.99 1164.69 L 1971.02 1159.21 C 1971.02 1146.72 1981.93 1135 1995.99 1135 C 2009.62 1135 2020.76 1146.04 2020.76 1159.8 L 2020.76 1165.23 C 2020.76 1178.37 2010.41 1190.12 1995.9 1190.12 Z M 2038.5 1254 L 2022.25 1254 L 2022.25 1231.83 L 2019.52 1231.83 L 2019.52 1254 L 1973.13 1254 L 1973.13 1231.83 L 1970.37 1231.83 L 1970.37 1254 L 1953.5 1254 L 1953.5 1216.65 C 1953.5 1201.72 1966.18 1191.82 1981.59 1191.82 L 2010.69 1191.82 C 2025.06 1191.82 2038.5 1201.24 2038.5 1216.88 Z" fill="#d2d3d3" stroke="none" pointer-events="all"/><path d="M 1970.37 1254 L 1953.5 1254 L 1953.5 1248.66 L 1970.37 1248.66 Z M 1973.13 1231.83 L 1970.37 1231.83 L 1970.37 1226.53 L 1973.13 1226.53 Z M 2019.52 1254 L 1973.13 1254 L 1973.13 1248.66 L 2019.52 1248.66 Z M 2022.25 1231.83 L 2019.52 1231.83 L 2019.52 1226.53 L 2022.25 1226.53 Z M 2038.5 1254 L 2022.25 1254 L 2022.25 1248.66 L 2038.5 1248.66 Z M 1995.9 1190.12 C 1983.05 1190.12 1970.99 1180.13 1970.99 1164.69 L 1971.02 1159.69 C 1971.02 1175.73 1984.23 1184.81 1995.93 1184.81 C 2009.76 1184.81 2020.76 1173.57 2020.76 1159.8 L 2020.76 1165.23 C 2020.76 1178.28 2010.47 1190.12 1995.9 1190.12 Z" fill-opacity="0.3" fill="#000000" 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 center; width: 1px; height: 1px; padding-top: 1261px; margin-left: 1996px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; ">Administrator</div></div></div></foreignObject><text x="1996" y="1281" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold">Administr...</text></switch></g><path d="M 1324 831 L 1097 831 C 1097 824.5 1087 824.5 1087 831 L 1087 831 L 1036.65 831 Q 1026.65 831 1026.65 821 L 1026.7 398.5 C 1033.2 398.5 1033.21 388.5 1026.71 388.5 L 1026.71 388.5 L 1026.71 335.85" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1026.71 326.85 L 1029.71 335.85 L 1023.71 335.85 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="1667.5" y="1254" width="39" height="30" fill="#ffffff" stroke="none" pointer-events="all"/><rect x="1667.5" y="1246.5" width="40" height="47" fill="none" stroke="none" pointer-events="all"/><path d="M 1677.31 1271.11 L 1677.31 1268.88 L 1697.69 1268.88 L 1697.69 1271.11 Z M 1677.31 1277.08 L 1677.31 1274.85 L 1697.69 1274.85 L 1697.69 1277.08 Z M 1677.31 1283.05 L 1677.31 1280.81 L 1697.69 1280.81 L 1697.69 1283.05 Z M 1669.76 1291.27 L 1705.24 1291.27 L 1705.24 1260.68 L 1693.92 1260.68 L 1693.92 1248.74 L 1669.76 1248.74 Z M 1667.5 1293.5 L 1667.5 1246.5 L 1695.42 1246.5 L 1707.5 1258.44 L 1707.5 1293.5 Z" fill="#080808" 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 center; width: 1px; height: 1px; padding-top: 1300px; margin-left: 1688px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #FFFFFF; white-space: nowrap; ">alarm.yml</div></div></div></foreignObject><text x="1688" y="1314" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">alarm....</text></switch></g><path d="M 826 971 L 968 971 L 983 986 L 983 1044 L 826 1044 L 826 971 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 968 971 L 968 986 L 983 986" fill="none" stroke="#000000" stroke-width="1.5" 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 flex-start; width: 148px; height: 1px; padding-top: 1008px; margin-left: 834px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 146px; max-height: 67px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; ">Judge the severity of the error, and decide if the Bot needs to stop.</div></div></div></foreignObject><text x="834" y="1011" fill="#000000" font-family="Helvetica" font-size="13px">Judge the severity of t...</text></switch></g><rect x="442" y="442" width="150" height="45" rx="6.75" ry="6.75" fill="#009999" stroke="#ffffff" stroke-width="2" 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: 148px; height: 1px; padding-top: 465px; margin-left: 443px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; white-space: normal; word-wrap: normal; "><font style="font-size: 14px"><span style="font-size: 14px"><span style="font-size: 14px">workers.Reporter</span></span></font></div></div></div></foreignObject><text x="517" y="469" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">workers.Reporter</text></switch></g><rect x="662" y="371" width="112" height="45" rx="6.75" ry="6.75" fill="#009999" stroke="#ffffff" stroke-width="2" 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: 110px; height: 1px; padding-top: 394px; margin-left: 663px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font>Child Worker</font></div></div></div></foreignObject><text x="718" y="398" fill="#FFFFFF" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">Child Worker</text></switch></g><path d="M 1278 644 L 1278 594 C 1278 587.1 1321.65 581.5 1375.5 581.5 C 1429.35 581.5 1473 587.1 1473 594 L 1473 644 C 1473 650.9 1429.35 656.5 1375.5 656.5 C 1321.65 656.5 1278 650.9 1278 644 Z" fill="#009900" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1278 594 C 1278 600.9 1321.65 606.5 1375.5 606.5 C 1429.35 606.5 1473 600.9 1473 594" fill="none" stroke="#ffffff" 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: 193px; height: 1px; padding-top: 627px; margin-left: 1279px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #FFFFFF; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font style="font-size: 14px"><span>sarah.UserContextStorage</span></font></div></div></div></foreignObject><text x="1375" y="631" fill="#FFFFFF" font-family="Helvetica" font-size="13px" text-anchor="middle" font-weight="bold">sarah.UserContextStorage</text></switch></g><rect x="406" y="811" width="252" height="134" rx="3.75" ry="3.75" fill="#b1ddf0" stroke="#ffffff" stroke-width="2" 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 center; width: 254px; height: 1px; padding-top: 821px; margin-left: 405px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 252px; "><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; ">[]sarah.ScheduledTask</div></div></div></foreignObject><text x="532" y="841" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle" font-weight="bold" font-style="italic">[]sarah.ScheduledTask</text></switch></g><rect x="503.8" y="853" width="56.4" height="60" fill="none" stroke="none" pointer-events="all"/><path d="M 545.81 871.08 L 547.14 871.08 Q 548.34 872.95 548.92 874.73 Q 549.54 876.51 549.54 878.3 Q 549.54 880.08 548.92 881.86 Q 548.34 883.65 547.14 885.51 L 545.81 885.51 Q 546.89 883.69 547.43 881.91 Q 547.97 880.12 547.97 878.3 Q 547.97 876.47 547.43 874.69 Q 546.89 872.91 545.81 871.08 Z M 543.07 878.01 L 543.07 883.36 L 541.58 883.36 L 541.58 878.09 Q 541.58 876.84 541.08 876.19 Q 540.58 875.58 539.55 875.58 Q 538.35 875.58 537.68 876.31 Q 536.98 877.08 536.98 878.38 L 536.98 883.36 L 535.48 883.36 L 535.48 874.53 L 536.98 874.53 L 536.98 875.91 Q 537.52 875.09 538.22 874.69 Q 538.97 874.28 539.88 874.28 Q 541.46 874.28 542.28 875.26 Q 543.07 876.19 543.07 878.01 Z M 532.62 871.08 Q 531.54 872.91 531 874.69 Q 530.51 876.47 530.51 878.3 Q 530.51 880.12 531 881.91 Q 531.54 883.69 532.62 885.51 L 531.34 885.51 Q 530.13 883.65 529.51 881.86 Q 528.89 880.08 528.89 878.3 Q 528.89 876.51 529.51 874.73 Q 530.09 872.95 531.34 871.08 L 532.62 871.08 Z M 527.81 871.08 L 527.81 872.26 L 526.4 872.26 Q 525.57 872.26 525.28 872.58 Q 524.95 872.91 524.95 873.72 L 524.95 874.53 L 527.4 874.53 L 527.4 875.66 L 524.95 875.66 L 524.95 883.36 L 523.46 883.36 L 523.46 875.66 L 522.05 875.66 L 522.05 874.53 L 523.46 874.53 L 523.46 873.88 Q 523.46 872.42 524.16 871.73 Q 524.87 871.08 526.4 871.08 L 527.81 871.08 Z M 519.14 906.51 C 519.14 908.54 518.31 910.57 517.49 911.38 C 516.24 912.59 513.75 913 513.75 913 L 554.39 913 L 555.64 913 C 555.64 913 555.64 913 555.64 913 C 556.88 913 558.13 912.19 558.96 910.97 C 559.79 909.76 560.2 908.14 560.2 906.11 L 549.83 906.11 L 519.14 906.51 L 519.14 906.51 Z M 513.75 913 M 515.83 909.76 C 516.66 908.95 517.07 907.73 517.07 906.11 L 517.07 904.08 L 519.14 904.08 L 549.42 904.08 C 549.42 903.27 549.42 902.46 549.42 902.05 C 549.42 891.51 558.96 876.11 558.96 863.95 C 558.96 854.22 549.42 853 549.42 853 L 515.41 853 L 507.95 853 C 507.95 853 515.41 854.62 517.07 861.11 C 517.49 861.92 517.49 862.73 517.49 863.95 C 517.49 876.11 507.95 891.51 507.95 902.05 C 507.95 903.27 507.95 904.89 508.36 906.11 C 508.78 907.32 509.19 908.14 510.02 908.95 C 510.44 909.35 510.85 909.76 511.68 910.16 C 512.09 910.57 512.92 910.97 513.34 910.97 C 514.17 910.97 515 910.57 515.83 909.76 Z M 514.17 859.89 C 513.34 858.68 512.51 857.86 511.68 857.05 C 509.61 855.84 507.53 855.03 507.53 855.03 L 504.63 854.22 C 504.21 855.03 503.8 855.84 503.8 856.65 C 503.8 860.3 505.04 861.11 505.04 861.11 L 515 861.11 C 514.58 860.7 514.58 860.3 514.17 859.89 Z" fill="#0078d7" 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 center; width: 1px; height: 1px; padding-top: 920px; margin-left: 532px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; "><span style="text-align: left"><font style="font-size: 14px"><b>alarmTask</b></font></span></div></div></div></foreignObject><text x="532" y="934" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle">alarmTask</text></switch></g><path d="M 969.5 846.5 C 969.5 840.98 978.68 836.5 990 836.5 C 995.44 836.5 1000.65 837.55 1004.5 839.43 C 1008.34 841.3 1010.5 843.85 1010.5 846.5 L 1010.5 938.5 C 1010.5 944.02 1001.32 948.5 990 948.5 C 978.68 948.5 969.5 944.02 969.5 938.5 Z" fill="#000066" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" transform="rotate(90,990,892.5)" pointer-events="all"/><path d="M 1010.5 846.5 C 1010.5 852.02 1001.32 856.5 990 856.5 C 978.68 856.5 969.5 852.02 969.5 846.5" fill="none" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" transform="rotate(90,990,892.5)" 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: 84px; height: 1px; padding-top: 893px; margin-left: 940px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 82px; max-height: 35px; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; width: 100%; white-space: normal; word-wrap: normal; "><font color="#ffffff">chan error</font></div></div></div></foreignObject><text x="982" y="897" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold" font-style="italic">chan error</text></switch></g><path d="M 1129 847.98 L 1000 847.98 Q 990 847.98 990 854.44 L 990 860.9" fill="none" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 990 867.65 L 987 858.65 L 990 860.9 L 993 858.65 Z" fill-opacity="0.5" fill="#666666" stroke="#666666" stroke-opacity="0.5" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 1127.12 661.56 L 995 661.56 Q 990 661.56 990 666.56 L 990 861.9" fill="none" stroke="#834187" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 990 868.65 L 987 859.65 L 990 861.9 L 993 859.65 Z" fill="#834187" stroke="#834187" stroke-width="3" 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: 778px; margin-left: 987px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #FFF; line-height: 1.2; pointer-events: all; background-color: #333333; white-space: nowrap; ">Notify <br />critical error</div></div></div></foreignObject><text x="987" y="783" fill="#FFF" font-family="Helvetica" font-size="14px" text-anchor="middle">Notify...</text></switch></g><path d="M 554.56 883 L 742 883 Q 747 883 747 878 L 747 736 Q 747 731 752 731 L 791.05 731 C 791.05 724.5 801.05 724.5 801.05 731 L 801.05 731 L 985 731 C 985 724.5 995 724.5 995 731 L 995 731 L 1021.66 731 C 1021.66 724.5 1031.66 724.5 1031.66 731 L 1031.66 731 L 1087 731 C 1087 724.5 1097 724.5 1097 731 L 1097 731 L 1387.06 731 Q 1392.06 731 1392.05 726 L 1392.03 718.35" fill="none" stroke="#fcc438" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1392.01 709.35 L 1395.03 718.35 L 1389.03 718.36 Z" fill="#fcc438" stroke="#fcc438" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 774 393.5 L 1021.71 393.48 C 1021.71 386.98 1031.71 386.98 1031.71 393.48 L 1031.71 393.48 L 1087.06 393.47 Q 1092.06 393.47 1092.06 398.47 L 1092.06 614 Q 1092.06 619 1097.06 619 L 1175.89 619" fill="none" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1184.89 619 L 1175.89 622 L 1175.89 616 Z" fill="#ff8000" stroke="#ff8000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 832 487 L 1136 487 L 1151 502 L 1151 588 L 832 588 L 832 487 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 1136 487 L 1136 502 L 1151 502" fill="none" stroke="#000000" stroke-width="1.5" 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: 310px; height: 1px; padding-top: 538px; margin-left: 839px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 308px; max-height: 95px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">- Receive </span><span style="font-size: 13px ; font-style: italic">sarah.Input</span><span style="font-size: 13px"><br /></span></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">- Fetch user's state from context storage<br /></span></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">  - If found, execute the next step with the given Input<br /></span></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">  - If not, find the corresponding command for the given Input<br /></span></span></div><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; font-size: 0 ; line-height: 1.25 ; margin-top: -2px"><span><span style="font-size: 13px">- Call </span><span style="font-size: 13px ; font-style: italic">Bot.SendMessage()</span><span style="font-size: 13px"> to send output</span></span></div></div></div></div></foreignObject><text x="994" y="541" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">- Receive sarah.Input...</text></switch></g><path d="M 59 185 L 414 185 L 429 200 L 429 296 L 59 296 L 59 185 Z" fill="#ffff99" stroke="#000000" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all"/><path d="M 414 185 L 414 200 L 429 200" fill="none" stroke="#000000" stroke-width="1.5" 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: 361px; height: 1px; padding-top: 241px; margin-left: 66px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; width: 359px; max-height: 105px; "><div style="display: inline-block; font-size: 13px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; white-space: normal; word-wrap: normal; "><div style="display: flex ; justify-content: flex-start ; text-align: left ; align-items: baseline ; line-height: 1.25 ; margin-top: -2px">With proper workers.Worker configuration, a developer can limit the number of concurrent job execution to avoid system overload.<br />Queue size can also be adjusted so the flooding messages can intentionally be ignored when the queue overflows.</div></div></div></div></foreignObject><text x="247" y="244" fill="#000000" font-family="Helvetica" font-size="13px" text-anchor="middle">With proper workers.Worker configuration, a developer ca...</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>