{"id":1434,"date":"2021-02-22T00:00:03","date_gmt":"2021-02-21T22:00:03","guid":{"rendered":"https:\/\/macadmin.cz\/?p=1434"},"modified":"2021-02-22T13:00:42","modified_gmt":"2021-02-22T11:00:42","slug":"installapplications-swiftly","status":"publish","type":"post","link":"https:\/\/macadmin.cz\/?p=1434&lang=en","title":{"rendered":"InstallApplications Swiftly"},"content":{"rendered":"\n<p>InstallApplications Swiftly (IAS) intends to be a replacement for <a href=\"https:\/\/github.com\/macadmins\/installapplications\">InstallApplications<\/a> (IA) tool.&nbsp;Code is not yet ready for public release. I still need to finish some parts and do the final refactoring not to mention proper testing. Expect alpha version in three to four weeks.&nbsp;<\/p>\n\n\n\n<p>This blog post outlines the development goals, implementation decisions and differences between IA and IAS.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Main goals<\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Swift<\/strong> code using <strong>Apple frameworks<\/strong> whenever possible. Minimum external dependencies.<\/li><li><strong>Smallest footprint<\/strong> possible. Less than 10 files with the total size under 1 MB.&nbsp;<\/li><li><strong>Speed<\/strong>. Files downlod in parallel on multiple threads. Option to mark the item to be executed in parallel with other items.<\/li><li><strong>Compatibility<\/strong> with InstallApplications <strong>JSON<\/strong> control file format.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Implementation<\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>OOP model.<\/li><li>File downloads handled by <a href=\"https:\/\/developer.apple.com\/documentation\/foundation\/urlsession\"><strong>URLSession<\/strong><\/a>.<\/li><li>Multithreading implemented with <a href=\"https:\/\/developer.apple.com\/documentation\/DISPATCH\"><strong>GCD<\/strong><\/a>.<\/li><li>LaunchDaemon (<strong>iasd<\/strong>) + LaunchAgent (<strong>iasagent<\/strong>) model stays but with differences. IAS logic is implemented solely in the <strong>iasd<\/strong>. Userscript execution is delegated to iasagent using the <strong><a href=\"https:\/\/developer.apple.com\/documentation\/foundation\/xpc\">XPC<\/a><\/strong> remote object calls.<\/li><li>No argument parsing. Configuration is provided via <strong>Plist<\/strong>.<\/li><li>Logging exclusively to the system unified log with <a href=\"https:\/\/developer.apple.com\/documentation\/os\/logger\"><strong>Logger<\/strong><\/a>.<\/li><li>Target is macOS 11.0 or newer.<\/li><\/ul>\n\n\n\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" width=\"1041px\" viewBox=\"-0.5 -0.5 1041 1533\" content=\"&lt;mxfile host=&quot;Electron&quot; modified=&quot;2021-02-22T11:00:29.895Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit\/537.36 (KHTML, like Gecko) draw.io\/14.1.8 Chrome\/87.0.4280.88 Electron\/11.1.1 Safari\/537.36&quot; etag=&quot;Snx_dOXG73GKtsNKoqZw&quot; version=&quot;14.1.8&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;kgpKYQtTHZ0yAKxKKP6v&quot; name=&quot;Page-1&quot;&gt;7V1bc6PGEv41rkoerGK48+j1Xk5Su4lrvakkTyksYYuzWOgAju38+jMjMQh6BhjQzIAcyVW7EhIgdX\/T9+65sK4fXz5l4Xb9JV1FyYVprF4urPcXpokCx8X\/kSOv+yNB4O0PPGTxqvzQ4cBt\/E9UHjTKo0\/xKsobHyzSNCnibfPgMt1somXROBZmWfrc\/Nh9mjTvug0fIubA7TJM2KO\/x6tivT\/qO8bh+H+i+GFN74yM8p3HkH64PJCvw1X6XDtkfbiwrrM0LfbPHl+uo4QQj9Jlf97HlnerL5ZFm0LkhOBvFF59\/ut5c3f19M\/Ltf2YfYgvA3t\/mb\/D5Kn8xeW3LV4pCbL0abOKyFWMC+vd8zouotttuCTvPmOm42Pr4jHBrxB+yn6r8ov+HWVF9FI7VH7LT1H6GBXZK\/5I+e6lZZUkKzGDTLMEzfOBBRQg6xr1Pb9kfMn0h+raB7rgJyVp+GR69\/Kf5+c\/vfTL1WOQPL9cxqtvf13aVj+Zos3qigAOv9qkm6hJlvs4Sa7TJM12n7Xu7+\/N5RIfz4ss\/R7V3lm5dy5eM\/Qdijmzi7R5+pQto66vX3I5WjXAznKgRl+HQ196LIuSsIj\/bi4RHtHLO9ykMf7KBwb7htNgsOkEC99qXmb\/o8oz67AGFzONJlhM12heqAizh6hgLrTDQfXTj4AGOm1oOPOChmc1oeE6hhxcMBeShwuuZDUFJKtkXEQvcfEHOXth4AW2f\/0nEdsLx6ev37+Ucnz34rX24ibKYvyjo6w8JoQp\/k+fGaZcF1MA44E+zKZ2QZYkiLFXUowxervRGGOwFLieFbIyZofHdFOU9hkirzEsstc\/KIDIiz\/rLw5A272iSFuF+XpnS+wvsfoYk59cgZDC12vAN\/DQYPiC5ROhlRN5R8G6RPWepx2fm5myJWu\/gVJjrEi9tBx4KaQX8J4jBfB11QlhDcWuQ\/54S+Xd7g+\/k2JjOC4ISZxOuTkXQNhm0OSiY48FBL7UwkbB4eE2bTFl6LA2T+8+vmTB8vWzsd38+vs3M\/x0yVpiX8J4g498W2dRuGKQgj2yLXn69Jh8ju+jJN6hZVsTJEl5uCZc3mFPs8CX3b2Pdq+TJNzm8d3usgQBWbR8ynLMoa9RvkfW7mjDjaq8QYMrbFtBNMSN8hwuNxpOFAdn7KqW5kch9e5mJzKEiWc3SefxSMdSDq4jeXQLTpNuKBAjHNRI0gjneqdJuIoiPYSDBqc8wgWsYsX667Z8mWbFOn1IN2Hy4XAUiLjDZz6n6bak33+jongt9W34VKRN6lITENvrNQOw2\/gbxpFeh5gipm7mdX6wV60L6+vjRMSwENUyCfM8XgLyjzLpK7v9CJaJcocqkF7ueK4gdzQZXYxkpAtssM2FELiSOqeTS1mKqxrQfr799ZdrbBZlafJTET0usGWzSdJw9cOPXCHyObyLkibywiR+2BBYYkTsrCwiOeNlmFyVb9ylRZE+7owrbFOFB2NrS37n7pc77y6c9\/hIQi5\/k+ZxEafca34GHyiIdOKAsnudQdFe5SDKL3dRD\/PzRL6B\/VyraYqbx4GNfiS9v88jJSY2K2R+urpd3EUP8ebr04bD71Y+5himBZVGKb7gPh5Aj9wl6fI7\/VipL\/xuu9kcLcFa5VGvmEGizj5dvcbCc0xfjkzxgIEfjPbrPejXi4kURcjji51hsa5u\/YbG6DdDWL\/lJCKwefi2s3ou0XiZJC4Wx6tUqin7sR7MS6VCRWhCt1VcpYIQma0ucMHHNhu5yKPHcLtOs2iRY06HyUmp0gb+awsCv3LENW214iVoWlSdOgvdyv+9bHATGlaYZnnEgQKmTzEQBY\/xarV32npRQPy0MpDFSwS0ip4BsSrbB1lcXrDK5ggTuFLlpfwNhso6HGBNGmq8uqDGS6+6sEQ9sKPTe03h7Qim87ClEL7WPlbivv0+VgBuBAtuBp6An+y\/g1wp4jNS5CuD5EEhL5ARQXchikxeRsQw3A9XH0sJ0Uxd44ckSQFSUJYvFihDymKzFqu83xTBXVCsYwkGwxVSnFWUb4riDpBotijFlYXRqSx\/sxRHfEndR3FfGcG9SayPwXbEOHtlvPXhiMZ\/qVRWbn1AL7QSj7LNDxtqPq\/H\/Og5QY35YU2TN5q92ewIm82ixXNHF+G2KBnpuLX5N2rHbfcJanBrsxqOBfKgcs3IbSnX9II7gx+9boXXXEJuDrAFXeh+C4fcXBctzJ6Lqa7cZmsD3sf5NiyW609YIm0Xz2FcTB5sGQwrGfaQByxQ1+DYQ5bWcAzr1v67QqRtTBwcDL3E4mBhGDZCnotFq9PMQDLmizwOsjVMZw4q4CCjyKVxkGqRMwfVctBRJkWdUc1KjZr93mqtymhWZEHPxRbynQVyW0ufbZhCF7aMgF1uwuWs2CpyzNOFiDkziID4vzUaE\/QLDcTEYF8N3Ic24ir1vBy2puh9+kzKx4i7vKvczxkEDoo1cmKK5CHJVkawdJdjKpsckCkLj9MY2VsN1jJ1H4IpIFgeJY\/gx3YlSXTy5iL6GCYJhpc4MmliffjG86kBEPmiuSaoy+R1HgwzQCQWsg8J1bUt2VaW9AZ+6QCEuaxgebE+G5SX2oJdo8MrNGDYSkfBhTtqNsg8DGbhZIOu1lTQUW\/BBKu41nDBlQRLmqWhYtT4h5mgYma9Mw4wAezxqEATo2KUpTgTVMzMwnRgmnA0KlwodXSjwmdBoK\/YA2nAjvxeybFuhyxTw4TN9X1Z7Z4T1NgmHpoSWQMaZlRa3vNBJzSpRQXN8JqLlsijWrBJH5J3+mEQpnj2iBDwOOxI465cg7Zy0Pe2C3XRq\/ekd2rOzXyBRsd49xoOeGIaIFQjQ65Rqx8Zc3N3kDRkIGMBhj256iZ2dXaX1pvaGHQcEz6995cRX0vc+dhFkJblaZu6MFWFuMdWr314KbKQAPklWj7tKh1OIoEGdeTkCTSPDfkfI9D0VknMbPqgCSMuY4dt4hU4LgkuTZKx9Ws3WXSfYJpVA0++Rvufk09eNqqgR9eC65SXKnI5WFJWzkSFK48leyH4NpulQWybnwDXWp3LmoC3UfG0vcrzOC\/C3TrersM8mpgZg0cqy2CXD0da2xx26S2mZn05um7OjKqtK84QvkAnnxCVuDOIDC+6J4j3jdFtxnLq8bwR0Z1eK0g4ly473uwK7j4wPLVtGtwbKY3oITRpG+ox+Js2oqwLf6CDyhPsoDoaffRGitE37QzSBvq8YfAbV4CktIdQGLS9A+51tVa7BmqiTnALj+HwBhsO0Rt1DMLvPEHReuCFIeaYzePL4g6JW23O0L4fhRCs+VtciY6tOzpuG5gNUAhvBzJiEpHBv1PHKKLuM9Qg1hfICE6+u5jLizfyrHyaJzjGzOfL0xNZ1+OmLNSkgX+UfqI57V79pCadP3iVIjieFfUs0p4T1KzRgA3d3By3SIFwX4WRf8+1YtylH90pmgvmTT6lKmAzX+du2f2hwd2yKGjvlvV8CXKZz0E2xXbm4FgO+u0c9N0O2XscB89TI+RxsKNjPVC2Dwm13k8xF4uMmbX0dLese6Pnx\/vjgqDSHGOa6zpFkAQza8EBlaPuaFCAEImyyDgMxUgOTfI9NoOrNM4eG1yYnBo8jSHF4S4bSOfQOVhq43qUSspcsIlq5FxBH4yKHAX5U3OMYjiqJL2hVciLm7DApt1md8Q0+PHQVurPRSv05jlF1cLIfKkswT1pp9WoCLo\/WowfI7dFU0G6Zvw70GWEYRtp1gSII9EbKdYAbKD8q1QNoCkIB7IMniumAJQVSSPjhNuwK7tgLkoA1vIy5Qaja3m1e4ycjYibBYv\/kpJepqrIZhasqbWSFCH9g5jfpMnWVxokbLDBrbDVTWnmW2wieFBvwzW2qyxBtzv2MSa\/pzS\/OFOJ8MHyI9yytI8fLfzgIgwu+JTEegvChm6PrV+xINFh9OIRTE2bHCM2oP9bHmVJuFn9OyW2x6te8LRKbM7OnECXvuVeDB9kI3nF\/Vo3rkMmG06q1sgb5oQFNB6mg8uyglvZI4EV\/KjmbApYVYSJ27tCm7oMMPzIkLIpXKUqOgxYcUwZwDIIeqqAnO4TVNWWKo9AOJG\/snmw8c07y5XVw2Pywzd9EQgZO6dxUUjpehYBEkUAZxMwPvHNWYgAuLl6776httt5hioRoHputJ401DgBgJQZAe6kPXwjJMCglhVVfrGYIOk2HgUkiSsoSex51BSDBlWE+qbOWV73GapEier9QvWIEkBuP5jYmHBPZFfQExcKusYBwk4UfOegeRFJWU0XesblfRQLAbZ8+jepQkCPS+HymzKmEwInUsNw4kJATfRARAgEaoRAAIVAoEUIcAL2J2gJAOIFgl6FjC1nuuolT71ikOmjdjkhW17BiK+IrgLlIkeR1SF\/PLK6u8cFs9fL\/iGJ3HDSHhKdYkg7oaTTm20+\/D2MidC6xwQgLrmbkKzEHX7yQJ7EYR4+EAqUb+CbVu8RPy7F\/9xF+B+SCMRMgsybNMshsev9iL18kUENMx1z27qqBk+92s0BlPVp7WBfrMmXUPDc1fl88r28aJzNjeBwW3n6llW4DGHF6whhea+qssKjuuMn2mYqMMDiGL25S7UcNVUqIf3z73nT1Gpe18GnqjtenZ7RXGBh0XntldaCFd8DtoKCClCweFwaMFir8n2cb8Niuf6EpfF28YxtnslLMuRtvjCkfAbOpTF4ol7VcEw+t4YVoHL3H5Qx\/bAZBjmBBdsjfQds+NliVularqwVNVNdPxfek30GLNs4PCxpshtB+aC5\/JhTcCrZV+kPYjegdagC9mQJYQemFQ2b4yFqTZpzakrPgzv2h4YP7jDaB3cc9K18Fkp1mTS3Xpkzm9xhGgsbtU\/uGL25dvd1lc1s6Pk5OkY4UDSeeInCpeXAYjHBpksXpJnkLXw2qEvrzy\/O0+VrwXfu4Emdrg6nTIeJuP+AfmwJtt9G\/3vC9IhDcp8izL8TeXnYemhSDvdMo9ezNB3UMmBpssA7pySDZbjZxvCbMAuTJCJ3eSBxi5Pht6awtR3YDX4HlrfgZAR4doI6jvP2soIct9o4fpW\/bpb4\/x9W6SYtSJjqx1Nb65r6DjzGh+JtyqNq9xA+63mj8yDr7bN0HyvdTRia4HFcq3i3WJfreu8tlpsBkvT40Jx6RFzNeOeVzZnrmrLpPuS6aXBiJb5WrrOeDMOpzrxTw+duJ19\/vR2\/haB6p6WF4BDoph783tEPAqvu6i8Cz+5098mLmyiLMVUJ9Hg7alQgaYVCb\/qUrrH+loGLWUUQXKbO0ARFPeJBWRt6MrCgQXFQ1upLqO2kzzmjRg5Uw5UnS6hZw0b4chNqSqqA57I0Obnu0UuTaTaEl1K8NGmmRyqzu\/bualNBwyaeDt0BTF7r6UTp2UOYcDDG4KAFZvi3aohJTSwcI1l0JyXmZVKAIr0qvjl4wpS2WXB8OI0yn98CnESHd2oSUaBVdfQ4eruJJ90Dy+xRZYBvAU8zqyyVhSdvYjxJHWF6SngSbcE7MTxVOb6pAHXemIrvVEuvrZGxt1jnOIqTL16A4ylMXm8Sb02biijrsP6r9qZ1UOLXEOUyqO4wrcC8zAU3RKQK0P5sNhqfpqm9JcjOi3DID2k7on6l9CCEDasPpY3xh2kaeqeOyFn3GWqq0BzWuDvF9vhLB2wBhixDTKSoa9lz2DI0qZTVlHBkerZFVaRJ+9HkU3ZYg0RHjFd+JLc9diw\/xis8FExXjNcMWqBydIwXGdDbUeykOCqSRgO0rJQ8Qr9u7sUYxcZsMAZzVczmLeIYY4x\/WMauGGMua+vrxVhpfl5iJ9Lx6iGVhW9oqHWYD6aMhVPfl9QGuIATkcTToRBiFvRgVEPMVACxylEcG7Lr9nHaHFYxP7TX2xCey62reRE6JcgdnX1namw0p0bdYbmHNwC32aAoaLY0eU0g2KO1ZM+FHdvSizDWYf3p6naxTKJw89uWxI1JgWn4uN0xrXpiEJZzosqt0eJGoGUVh4\/pZtWMrdSjL7UG63wdrnbv8+tFxk05bpYoyhumQZlsLFyXGu9HpymgzrNHd1+z8RrByRmHS9EPpvf3eaQGked0Bj+mIDudgZRNM3RZZ+\/MQhUsZMxfeZPHzg37mliorE7XY+vqqravi1rfSFY1jhTRI8PSYSHV1i3uvC7TUGkrFwJKz6MFGDVLkqrYuiUJTX15fGF9SNKWt84wc55ycrZmPujJKTB88KfmA+tcbZmO2MnXiJZWV8gb35yaN6NmNg3KRwiP8n23+7sQ37BzLj6saQQLx6+NcQJxOGe0I0GuHNQfjQubRN8dHtXmzLp2mGVNlz9uronixms7P9ssIjaL7U5jdvqsbrwhtgp5hn\/q8nv4wA4bkSl+JQhTWI3DmckdcGSpMjvQZ\/XczxVNf7799ZdTIyinFEEvQbkbq5UE\/Zqm+TKLt8WpUZUzZkgvVTljhiqqkoFDp0lWzowYvWTlDDyMiqdsUx07K0QRheh1KUSm7k0a+wLWmPnlFpszhzkQ5zCMIAedzmCosv2dAoEc3iAZJkFIdVRu9lShKfP4AqlTeofMttjnNoWnW2gd7k89q3pdEbe7xp\/ZgEu4ExBiNlATz1oZ8FKaiz4C3sytMzRFN26n5T+zgSacQc1o7yFllQsQVLFgma5qcAoUVk6vXozJN1gzWEPqvIirtdm\/iIOZLWJY0CyvNtqnE3iPXsH4ZZamRf3jeLmtv6QrYpp\/+D8=&lt;\/diagram&gt;&lt;\/mxfile&gt;\" onclick=\"(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&amp;&amp;src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&amp;&amp;!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&amp;&amp;evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https:\/\/viewer.diagrams.net\/?client=1&amp;page=0&amp;edit=_blank');}}})(this);\" style=\"cursor:pointer;max-width:100%;max-height:1533px;\"><defs\/><g><rect x=\"505\" y=\"1208\" width=\"10\" height=\"78\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><path d=\"M 90 241 L 1035 241\" fill=\"none\" stroke=\"#d6b656\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 130 631 L 1035 631\" fill=\"none\" stroke=\"#d6b656\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 100.5 1112.7 L 1035 1111\" fill=\"none\" stroke=\"#d6b656\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 231.12 1027.42 L 230 1111\" fill=\"none\" stroke=\"#9673a6\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 406 1521 L 405.58 1\" fill=\"none\" stroke=\"#b3b3b3\" stroke-opacity=\"0.5\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><rect x=\"460\" y=\"1\" width=\"100\" height=\"40\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><path d=\"M 510 41 L 510 1011\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"all\"\/><g fill=\"#000000\" font-family=\"Helvetica\" text-anchor=\"middle\" font-size=\"12px\"><text x=\"509.5\" y=\"25.5\">Main Thread<\/text><\/g><rect x=\"505\" y=\"71\" width=\"10\" height=\"40\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><rect x=\"505\" y=\"191\" width=\"10\" height=\"50\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><rect x=\"505\" y=\"251\" width=\"10\" height=\"30\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><path d=\"M 515 111 L 713.63 111\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 718.88 111 L 711.88 114.5 L 713.63 111 L 711.88 107.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 107px; margin-left: 619px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">JSONControlItem.download()<\/div><\/div><\/div><\/foreignObject><text x=\"619\" y=\"107\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">JSONControlItem.download()<\/text><\/switch><\/g><path d=\"M 64 71 L 494.76 71\" fill=\"none\" stroke=\"#000000\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><ellipse cx=\"60\" cy=\"71\" rx=\"4\" ry=\"4\" fill=\"#000000\" stroke=\"#000000\" stroke-width=\"2\" pointer-events=\"all\"\/><path d=\"M 502.76 71 L 494.76 75 L 494.76 67 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><g fill=\"#000000\" font-family=\"Helvetica\" text-anchor=\"middle\" font-size=\"11px\"><rect fill=\"#ffffff\" stroke=\"none\" x=\"77\" y=\"56\" width=\"77\" height=\"14\" stroke-width=\"0\"\/><text x=\"114.5\" y=\"65.5\">IAS.beginRun()<\/text><\/g><path d=\"M 720 191 L 521.37 191\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 516.12 191 L 523.12 187.5 L 521.37 191 L 523.12 194.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 186px; margin-left: 606px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"606\" y=\"186\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><rect x=\"355\" y=\"201\" width=\"140\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 211px; margin-left: 425px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">JSONControlItem.parse()<\/div><\/div><\/div><\/foreignObject><text x=\"425\" y=\"214\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">JSONControlItem.parse()<\/text><\/switch><\/g><path d=\"M 780 501 L 440 501 L 336.37 501\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 331.12 501 L 338.12 497.5 L 336.37 501 L 338.12 504.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"780\" y=\"361\" width=\"10\" height=\"140\" fill=\"#1ba1e2\" stroke=\"#006eaf\" 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: 8px; height: 1px; padding-top: 431px; margin-left: 781px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"785\" y=\"435\" fill=\"#ffffff\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><rect x=\"230\" y=\"351\" width=\"10\" height=\"140\" fill=\"#1ba1e2\" stroke=\"#006eaf\" 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: 8px; height: 1px; padding-top: 421px; margin-left: 231px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"235\" y=\"425\" fill=\"#ffffff\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><rect x=\"270\" y=\"451\" width=\"10\" height=\"150\" fill=\"#1ba1e2\" stroke=\"#006eaf\" 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: 8px; height: 1px; padding-top: 526px; margin-left: 271px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"275\" y=\"530\" fill=\"#ffffff\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><rect x=\"320\" y=\"501\" width=\"10\" height=\"80\" fill=\"#1ba1e2\" stroke=\"#006eaf\" 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: 8px; height: 1px; padding-top: 541px; margin-left: 321px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"325\" y=\"545\" fill=\"#ffffff\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 720 351 L 380 351 L 246.37 351\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 241.12 351 L 248.12 347.5 L 246.37 351 L 248.12 354.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 745 451 L 390 451 L 286.37 451\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 281.12 451 L 288.12 447.5 L 286.37 451 L 288.12 454.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 330 601 L 173.75 601\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><rect x=\"70\" y=\"581\" width=\"130\" height=\"20\" fill=\"#ffe6cc\" stroke=\"#d79b00\" 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: 591px; margin-left: 135px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">DispatchGroup.wait()<\/div><\/div><\/div><\/foreignObject><text x=\"135\" y=\"595\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">DispatchGroup.wait()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 346px; margin-left: 610px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"610\" y=\"346\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 446px; margin-left: 610px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"610\" y=\"446\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 496px; margin-left: 610px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"610\" y=\"496\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><path d=\"M 750 351 L 750 251\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 785 361 L 785 321 Q 785 311 785 301 L 785 251\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"690\" y=\"1\" width=\"120\" height=\"40\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 21px; margin-left: 691px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">Dowload threads<\/div><\/div><\/div><\/foreignObject><text x=\"750\" y=\"25\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">Dowload threads<\/text><\/switch><\/g><rect x=\"720\" y=\"261\" width=\"10\" height=\"90\" fill=\"#1ba1e2\" stroke=\"#006eaf\" 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: 8px; height: 1px; padding-top: 306px; margin-left: 721px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"725\" y=\"310\" fill=\"#ffffff\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 720 251 L 780 251\" fill=\"none\" stroke=\"#d79b00\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><rect x=\"745\" y=\"351\" width=\"10\" height=\"100\" fill=\"#1ba1e2\" stroke=\"#006eaf\" 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: 8px; height: 1px; padding-top: 401px; margin-left: 746px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"750\" y=\"405\" fill=\"#ffffff\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 330 601 L 460 601 Q 470 601 480 601 L 496.76 601\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 502.76 601 L 494.76 605 L 496.76 601 L 494.76 597 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 275 451 L 275 281\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 325 501 L 325 281\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 235 351 L 235 281\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 515 251 L 560 251 L 713.63 251\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 718.88 251 L 711.88 254.5 L 713.63 251 L 711.88 247.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 505 281 L 340 281 L 338.24 281\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 332.24 281 L 340.24 277 L 338.24 281 L 340.24 285 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 230 281 L 330 281\" fill=\"none\" stroke=\"#d79b00\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 235 601 L 235 491\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 325 601 L 325 581\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"720\" y=\"111\" width=\"10\" height=\"80\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 151px; margin-left: 721px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">J<\/div><\/div><\/div><\/foreignObject><text x=\"725\" y=\"155\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">J<\/text><\/switch><\/g><rect x=\"230\" y=\"1\" width=\"120\" height=\"40\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 21px; margin-left: 231px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">Extra execution threads<\/div><\/div><\/div><\/foreignObject><text x=\"290\" y=\"25\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">Extra execution thre&#8230;<\/text><\/switch><\/g><path d=\"M 725 261 L 725 251\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"530\" y=\"251\" width=\"160\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 261px; margin-left: 610px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Prefligh.downloadResources()<\/div><\/div><\/div><\/foreignObject><text x=\"610\" y=\"264\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Prefligh.downloadResources()<\/text><\/switch><\/g><rect x=\"375\" y=\"261\" width=\"100\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 271px; margin-left: 425px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Prefligh.execute()<\/div><\/div><\/div><\/foreignObject><text x=\"425\" y=\"274\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Prefligh.execute()<\/text><\/switch><\/g><rect x=\"0\" y=\"621\" width=\"130\" height=\"20\" fill=\"#fff2cc\" stroke=\"#d6b656\" 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: 631px; margin-left: 65px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">SetupAssistant phase<\/div><\/div><\/div><\/foreignObject><text x=\"65\" y=\"635\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">SetupAssistant phase<\/text><\/switch><\/g><rect x=\"0\" y=\"231\" width=\"90\" height=\"20\" fill=\"#fff2cc\" stroke=\"#d6b656\" 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: 241px; margin-left: 45px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Prefligh phase<\/div><\/div><\/div><\/foreignObject><text x=\"45\" y=\"245\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">Prefligh phase<\/text><\/switch><\/g><path d=\"M 515 719 L 515 641 L 711.76 641\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 717.76 641 L 709.76 645 L 711.76 641 L 709.76 637 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 515 719 L 515 701 L 851.76 701\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 857.76 701 L 849.76 705 L 851.76 701 L 849.76 697 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 505 778 L 505 731 L 485 731 L 485 738.76\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 485 744.76 L 481 736.76 L 485 738.76 L 489 736.76 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 505 1111 L 445 1111 L 251.24 1111\" fill=\"none\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 245.24 1111 L 253.24 1107 L 251.24 1111 L 253.24 1115 Z\" fill=\"#9673a6\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"505\" y=\"601\" width=\"10\" height=\"236\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><path d=\"M 780 891 L 660 891 L 336.37 891\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 331.12 891 L 338.12 887.5 L 336.37 891 L 338.12 894.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"780\" y=\"751\" width=\"10\" height=\"140\" fill=\"#dae8fc\" stroke=\"#6c8ebf\" 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: 8px; height: 1px; padding-top: 821px; margin-left: 781px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">P<\/div><\/div><\/div><\/foreignObject><text x=\"785\" y=\"825\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">P<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 762px; margin-left: 616px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"616\" y=\"762\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 837px; margin-left: 617px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"617\" y=\"837\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 906px; margin-left: 620px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"620\" y=\"906\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><path d=\"M 750 741 L 750 641\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 785 751 L 785 711 Q 785 701 785 691 L 785 641\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 720 746 L 501.37 746.97\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 496.12 747 L 503.1 743.46 L 501.37 746.97 L 503.13 750.46 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"720\" y=\"651\" width=\"10\" height=\"95\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 699px; margin-left: 721px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">P<\/div><\/div><\/div><\/foreignObject><text x=\"725\" y=\"702\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">P<\/text><\/switch><\/g><path d=\"M 720 641 L 850 641\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" stroke-dasharray=\"2 2\" pointer-events=\"stroke\"\/><path d=\"M 745 821 L 280 821 L 280 829.63\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 280 834.88 L 276.5 827.88 L 280 829.63 L 283.5 827.88 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"745\" y=\"741\" width=\"10\" height=\"80\" fill=\"#dae8fc\" stroke=\"#6c8ebf\" 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: 8px; height: 1px; padding-top: 781px; margin-left: 746px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"750\" y=\"785\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 725 651 L 725 641\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"515\" y=\"645\" width=\"200\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 655px; margin-left: 615px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">SetupAssistant.downloadResources()<\/div><\/div><\/div><\/foreignObject><text x=\"615\" y=\"658\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">SetupAssistant.downloadResources()<\/text><\/switch><\/g><path d=\"M 860 701 L 980 701\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" stroke-dasharray=\"2 2\" pointer-events=\"stroke\"\/><path d=\"M 685 711 L 750 711 L 750 732.76\" fill=\"none\" stroke=\"#ff3333\" stroke-opacity=\"0.5\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 750 738.76 L 746 730.76 L 750 732.76 L 754 730.76 Z\" fill-opacity=\"0.5\" fill=\"#ff3333\" stroke=\"#ff3333\" stroke-opacity=\"0.5\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"515\" y=\"701\" width=\"170\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 711px; margin-left: 600px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Userland.downloadResources()<\/div><\/div><\/div><\/foreignObject><text x=\"600\" y=\"714\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Userland.downloadResources()<\/text><\/switch><\/g><rect x=\"346\" y=\"721\" width=\"140\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 731px; margin-left: 416px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">SetupAssistant.execute()<\/div><\/div><\/div><\/foreignObject><text x=\"416\" y=\"734\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">SetupAssistant.execute()<\/text><\/switch><\/g><rect x=\"510\" y=\"1197\" width=\"110\" height=\"20\" fill=\"none\" stroke=\"none\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1207px; margin-left: 565px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Userland.execute()<\/div><\/div><\/div><\/foreignObject><text x=\"565\" y=\"1210\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Userland.execute()<\/text><\/switch><\/g><path d=\"M 810 871 L 810 971 L 310 971 L 310 1021.63\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 310 1026.88 L 306.5 1019.88 L 310 1021.63 L 313.5 1019.88 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"810\" y=\"821\" width=\"10\" height=\"50\" fill=\"#d5e8d4\" stroke=\"#82b366\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 8px; height: 1px; padding-top: 846px; margin-left: 811px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"815\" y=\"850\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 840 941 L 840 1001 L 489 1001 L 489 1034.63\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 489 1039.88 L 485.5 1032.88 L 489 1034.63 L 492.5 1032.88 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"840\" y=\"821\" width=\"10\" height=\"120\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 881px; margin-left: 841px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"845\" y=\"885\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 870 921 L 870 1151 L 460 1151 L 460 1201.63\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 460 1206.88 L 456.5 1199.88 L 460 1201.63 L 463.5 1199.88 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"870\" y=\"871\" width=\"10\" height=\"50\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 896px; margin-left: 871px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"875\" y=\"900\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><path d=\"M 900 941 L 900 1260 L 511.37 1260\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 506.12 1260 L 513.12 1256.5 L 511.37 1260 L 513.12 1263.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"900\" y=\"891\" width=\"10\" height=\"50\" fill=\"#d5e8d4\" stroke=\"#82b366\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 8px; height: 1px; padding-top: 916px; margin-left: 901px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">U<\/div><\/div><\/div><\/foreignObject><text x=\"905\" y=\"920\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">U<\/text><\/switch><\/g><path d=\"M 930 1011 L 930 1280 L 511.37 1280\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 506.12 1280 L 513.12 1276.5 L 511.37 1280 L 513.12 1283.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"930\" y=\"921\" width=\"10\" height=\"90\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 966px; margin-left: 931px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">U<\/div><\/div><\/div><\/foreignObject><text x=\"935\" y=\"970\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">U<\/text><\/switch><\/g><rect x=\"485\" y=\"747\" width=\"10\" height=\"88\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 791px; margin-left: 486px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">P<\/div><\/div><\/div><\/foreignObject><text x=\"490\" y=\"795\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">P<\/text><\/switch><\/g><rect x=\"230\" y=\"1111\" width=\"10\" height=\"97\" fill=\"#f5f5f5\" stroke=\"#666666\" pointer-events=\"all\"\/><rect x=\"70\" y=\"1008\" width=\"160\" height=\"20\" fill=\"#e1d5e7\" stroke=\"#9673a6\" 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: 1018px; margin-left: 150px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Wait for <b>iasagent<\/b> to be loaded<\/div><\/div><\/div><\/foreignObject><text x=\"150\" y=\"1021\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Wait for iasagent to be loaded<\/text><\/switch><\/g><rect x=\"270\" y=\"836\" width=\"10\" height=\"185\" fill=\"#dae8fc\" stroke=\"#6c8ebf\" 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: 8px; height: 1px; padding-top: 929px; margin-left: 271px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"275\" y=\"932\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><rect x=\"320\" y=\"891\" width=\"10\" height=\"110\" fill=\"#dae8fc\" stroke=\"#6c8ebf\" 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: 8px; height: 1px; padding-top: 946px; margin-left: 321px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">P<\/div><\/div><\/div><\/foreignObject><text x=\"325\" y=\"950\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">P<\/text><\/switch><\/g><path d=\"M 325 891 L 325 836\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 495.76 1021 L 270 1021\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 501.76 1021 L 493.76 1025 L 495.76 1021 L 493.76 1017 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"345\" y=\"991\" width=\"130\" height=\"20\" fill=\"#ffe6cc\" stroke=\"#d79b00\" 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: 1001px; margin-left: 410px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">DispatchGroup.wait()<\/div><\/div><\/div><\/foreignObject><text x=\"410\" y=\"1005\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">DispatchGroup.wait()<\/text><\/switch><\/g><path d=\"M 505 836 L 288.24 836\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 282.24 836 L 290.24 832 L 288.24 836 L 290.24 840 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 324.66 1021 L 325 1001\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"300\" y=\"1028\" width=\"10\" height=\"120\" fill-opacity=\"0.7\" fill=\"#d5e8d4\" stroke=\"#82b366\" stroke-opacity=\"0.7\" stroke-dasharray=\"3 3\" 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: 8px; height: 1px; padding-top: 1088px; margin-left: 301px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"305\" y=\"1092\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 986px; margin-left: 625px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"625\" y=\"986\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><path d=\"M 815 821 L 814.61 711 Q 814.58 701 814.58 691 L 814.58 641\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"479\" y=\"1041\" width=\"10\" height=\"69\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 1076px; margin-left: 480px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"484\" y=\"1079\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><rect x=\"0\" y=\"1101\" width=\"100\" height=\"20\" fill=\"#fff2cc\" stroke=\"#d6b656\" 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: 1111px; margin-left: 50px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Userland phase<\/div><\/div><\/div><\/foreignObject><text x=\"50\" y=\"1115\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">Userland phase<\/text><\/switch><\/g><rect x=\"319\" y=\"771\" width=\"160\" height=\"20\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 781px; margin-left: 399px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \"><b>(1)<\/b> Sequential task execution<\/div><\/div><\/div><\/foreignObject><text x=\"399\" y=\"784\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">(1) Sequential task execution<\/text><\/switch><\/g><rect x=\"341\" y=\"918.5\" width=\"150\" height=\"20\" fill=\"#dae8fc\" stroke=\"#6c8ebf\" 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: 929px; margin-left: 416px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \"><b>(2)<\/b> Parallel group execution<\/div><\/div><\/div><\/foreignObject><text x=\"416\" y=\"932\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">(2) Parallel group execution<\/text><\/switch><\/g><rect x=\"100\" y=\"1061\" width=\"190\" height=\"20\" fill=\"#d5e8d4\" stroke=\"#82b366\" pointer-events=\"all\"\/><g transform=\"translate(-0.5 -0.5)\"><switch><foreignObject style=\"overflow: visible; text-align: left;\" pointer-events=\"none\" width=\"100%\" height=\"100%\" requiredFeatures=\"http:\/\/www.w3.org\/TR\/SVG11\/feature#Extensibility\"><div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1071px; margin-left: 195px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \"><b>(3)<\/b> Async (donotwait) task execution<\/div><\/div><\/div><\/foreignObject><text x=\"195\" y=\"1074\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">(3) Async (donotwait) task executi&#8230;<\/text><\/switch><\/g><rect x=\"315\" y=\"1061\" width=\"160\" height=\"20\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 1071px; margin-left: 395px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \"><b>(4)<\/b> Sequential task execution<\/div><\/div><\/div><\/foreignObject><text x=\"395\" y=\"1074\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">(4) Sequential task execution<\/text><\/switch><\/g><rect x=\"15\" y=\"1188\" width=\"180\" height=\"20\" fill=\"#e1d5e7\" stroke=\"#9673a6\" 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: 1198px; margin-left: 105px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">Connection to <b>iasagent<\/b> etablished<\/div><\/div><\/div><\/foreignObject><text x=\"105\" y=\"1201\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Connection to iasagent etablished<\/text><\/switch><\/g><path d=\"M 193.74 1207.48 L 230 1208\" fill=\"none\" stroke=\"#9673a6\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"345\" y=\"842\" width=\"130\" height=\"20\" fill=\"#ffe6cc\" stroke=\"#d79b00\" 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: 852px; margin-left: 410px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; \">DispatchGroup.enter()<\/div><\/div><\/div><\/foreignObject><text x=\"410\" y=\"856\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">DispatchGroup.enter()<\/text><\/switch><\/g><path d=\"M 504 1028 L 316.37 1028\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 311.12 1028 L 318.12 1024.5 L 316.37 1028 L 318.12 1031.5 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 505 1041 L 497.24 1041\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 491.24 1041 L 499.24 1037 L 497.24 1041 L 499.24 1045 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 845 821 L 845 641\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 875 871 L 875 701\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 905 891 L 905 701\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 935 921 L 935 701\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><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: 1px; height: 1px; padding-top: 1016px; margin-left: 625px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"625\" y=\"1016\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><rect x=\"460\" y=\"1208\" width=\"10\" height=\"52\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 1234px; margin-left: 461px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R<\/div><\/div><\/div><\/foreignObject><text x=\"465\" y=\"1238\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">R<\/text><\/switch><\/g><rect x=\"240\" y=\"1261\" width=\"10\" height=\"200\" fill-opacity=\"0.7\" fill=\"#d5e8d4\" stroke=\"#82b366\" stroke-opacity=\"0.7\" stroke-dasharray=\"3 3\" 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: 8px; height: 1px; padding-top: 1361px; margin-left: 241px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">U<\/div><\/div><\/div><\/foreignObject><text x=\"245\" y=\"1365\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">U<\/text><\/switch><\/g><path d=\"M 260 1391 L 315 1391 L 496.76 1391\" fill=\"none\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 502.76 1391 L 494.76 1395 L 496.76 1391 L 494.76 1387 Z\" fill=\"#9673a6\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><rect x=\"250\" y=\"1281\" width=\"10\" height=\"110\" fill=\"#f8cecc\" stroke=\"#b85450\" 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: 8px; height: 1px; padding-top: 1336px; margin-left: 251px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">U<\/div><\/div><\/div><\/foreignObject><text x=\"255\" y=\"1340\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"12px\" text-anchor=\"middle\">U<\/text><\/switch><\/g><rect x=\"230\" y=\"1208\" width=\"10\" height=\"213\" fill=\"#e1d5e7\" stroke=\"#9673a6\" pointer-events=\"all\"\/><path d=\"M 506 1208 L 478.24 1208\" fill=\"none\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 472.24 1208 L 480.24 1204 L 478.24 1208 L 480.24 1212 Z\" fill=\"#d79b00\" stroke=\"#d79b00\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 504 1261 L 258.24 1261\" fill=\"none\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 252.24 1261 L 260.24 1257 L 258.24 1261 L 260.24 1265 Z\" fill=\"#9673a6\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 504.43 1280 L 268.24 1280.97\" fill=\"none\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 262.24 1280.99 L 270.22 1276.96 L 268.24 1280.97 L 270.25 1284.96 Z\" fill=\"#9673a6\" stroke=\"#9673a6\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 305 1148 L 305 1204.63\" fill=\"none\" stroke=\"#82b366\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 305 1209.88 L 301.5 1202.88 L 305 1204.63 L 308.5 1202.88 Z\" fill=\"#82b366\" stroke=\"#82b366\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 244.58 1461 L 244.58 1517.63\" fill=\"none\" stroke=\"#82b366\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 244.58 1522.88 L 241.08 1515.88 L 244.58 1517.63 L 248.08 1515.88 Z\" fill=\"#82b366\" stroke=\"#82b366\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><path d=\"M 71.41 1421 L 505 1421\" fill=\"none\" stroke=\"#000000\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><path d=\"M 61.41 1421 L 66.41 1416 L 71.41 1421 L 66.41 1426 Z\" fill=\"#000000\" stroke=\"#000000\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"all\"\/><g fill=\"#000000\" font-family=\"Helvetica\" text-anchor=\"middle\" font-size=\"11px\"><rect fill=\"#ffffff\" stroke=\"none\" x=\"78\" y=\"1406\" width=\"116\" height=\"14\" stroke-width=\"0\"\/><text x=\"134.5\" y=\"1415.5\">IAS.cleanUp() &amp;&amp; exit()<\/text><\/g><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: 1px; height: 1px; padding-top: 1166px; margin-left: 625px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"625\" y=\"1166\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 1276px; margin-left: 625px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"625\" y=\"1276\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 1296px; margin-left: 625px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">semaphore.signal()<\/div><\/div><\/div><\/foreignObject><text x=\"625\" y=\"1296\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">semaphore.signal()<\/text><\/switch><\/g><rect x=\"965\" y=\"725\" width=\"75\" height=\"30\" fill-opacity=\"0.7\" fill=\"#d5e8d4\" stroke=\"#82b366\" stroke-opacity=\"0.7\" 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: 73px; height: 1px; padding-top: 740px; margin-left: 966px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">donotwait <br \/>item<\/div><\/div><\/div><\/foreignObject><text x=\"1003\" y=\"743\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">donotwait&#8230;<\/text><\/switch><\/g><rect x=\"965\" y=\"765\" width=\"75\" height=\"30\" fill-opacity=\"0.7\" fill=\"#f8cecc\" stroke=\"#b85450\" stroke-opacity=\"0.7\" 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: 73px; height: 1px; padding-top: 780px; margin-left: 966px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">synchronous item<\/div><\/div><\/div><\/foreignObject><text x=\"1003\" y=\"783\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">synchronous i&#8230;<\/text><\/switch><\/g><rect x=\"965\" y=\"805\" width=\"75\" height=\"30\" fill-opacity=\"0.7\" fill=\"#dae8fc\" stroke=\"#6c8ebf\" stroke-opacity=\"0.7\" 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: 73px; height: 1px; padding-top: 820px; margin-left: 966px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">parallel group<br \/>item<\/div><\/div><\/div><\/foreignObject><text x=\"1003\" y=\"823\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">parallel grou&#8230;<\/text><\/switch><\/g><path d=\"M 625.42 1521 L 625 1\" fill=\"none\" stroke=\"#b3b3b3\" stroke-opacity=\"0.5\" stroke-width=\"2\" stroke-miterlimit=\"10\" pointer-events=\"stroke\"\/><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: 1px; height: 1px; padding-top: 1276px; margin-left: 375px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">XPC calls<\/div><\/div><\/div><\/foreignObject><text x=\"375\" y=\"1276\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">XPC calls<\/text><\/switch><\/g><rect x=\"930\" y=\"111\" width=\"95\" height=\"20\" fill-opacity=\"0.7\" fill=\"#ffffff\" stroke=\"#000000\" stroke-opacity=\"0.7\" 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: 93px; height: 1px; padding-top: 121px; margin-left: 931px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">P = package<\/div><\/div><\/div><\/foreignObject><text x=\"978\" y=\"124\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">P = package<\/text><\/switch><\/g><rect x=\"930\" y=\"81\" width=\"95\" height=\"20\" fill-opacity=\"0.7\" fill=\"#ffffff\" stroke=\"#000000\" stroke-opacity=\"0.7\" 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: 93px; height: 1px; padding-top: 91px; margin-left: 931px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">J = JSON<\/div><\/div><\/div><\/foreignObject><text x=\"978\" y=\"94\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">J = JSON<\/text><\/switch><\/g><rect x=\"930\" y=\"141\" width=\"95\" height=\"20\" fill-opacity=\"0.7\" fill=\"#ffffff\" stroke=\"#000000\" stroke-opacity=\"0.7\" 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: 93px; height: 1px; padding-top: 151px; margin-left: 931px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">R = Rooscript<\/div><\/div><\/div><\/foreignObject><text x=\"978\" y=\"154\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">R = Rooscript<\/text><\/switch><\/g><rect x=\"930\" y=\"171\" width=\"95\" height=\"20\" fill-opacity=\"0.7\" fill=\"#ffffff\" stroke=\"#000000\" stroke-opacity=\"0.7\" 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: 93px; height: 1px; padding-top: 181px; margin-left: 931px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; \">U = Userscript<\/div><\/div><\/div><\/foreignObject><text x=\"978\" y=\"184\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">U = Userscript<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 1386px; margin-left: 365px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">Return value<\/div><\/div><\/div><\/foreignObject><text x=\"365\" y=\"1386\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">Return value<\/text><\/switch><\/g><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: 1px; height: 1px; padding-top: 1126px; margin-left: 385px;\"><div style=\"box-sizing: border-box; font-size: 0; text-align: center; \"><div style=\"display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; \">NSXPCConnection()<\/div><\/div><\/div><\/foreignObject><text x=\"385\" y=\"1126\" fill=\"#000000\" font-family=\"Helvetica\" font-size=\"11px\" text-anchor=\"middle\">NSXPCConnection()<\/text><\/switch><\/g><rect x=\"505\" y=\"1391\" width=\"10\" height=\"30\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><path d=\"M 510 1021 L 510 837\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><path d=\"M 510 1391 L 510 1286\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><rect x=\"505\" y=\"1021\" width=\"10\" height=\"90\" fill=\"#ffffff\" stroke=\"#000000\" pointer-events=\"all\"\/><path d=\"M 510 1208 L 510 1111\" fill=\"none\" stroke=\"#000000\" stroke-miterlimit=\"10\" stroke-dasharray=\"3 3\" pointer-events=\"stroke\"\/><\/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\" rel=\"noopener\"><text text-anchor=\"middle\" font-size=\"10px\" x=\"50%\" y=\"100%\">Viewer does not support full SVG 1.1<\/text><\/a><\/switch><\/svg>\n\n\n\n<h1 class=\"wp-block-heading\">Advantages over IA<\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>IAS download and install should be much quicker. Current Python.framework (IA 2.1 Alpha 1) has 6000+ files and is 40+ MB in size (compressed). Size of IAS binaries is currently less than 1 MB.<\/li><li>Workflow should complete faster since it&#8217;s no longer linear cycle download -&gt; execute -&gt; download -&gt; execute.<\/li><li>More secure file permission model bacause <strong>iasagent<\/strong> only needs to read and execute userscript files.<\/li><li>Code signing and notarization should be easier compared to Python framework with many executable files.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Disadvantages over IA<\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>If you run Python scripts as part of IA run you will have to package your own Python.framework and deploy as one of the first items in the IAS workflow.<\/li><li>Swift standard library does not have argument parser. I did not want to use any Swift package for this so I decided do configure <strong>iasd<\/strong> solely via plist (Either passed as first argument or known filename in the same directory).<\/li><li>I am not aiming for backward compatibility. macOS 11.0 or newer is currently the target.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Other new features<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Multiple preflight scripts<\/h2>\n\n\n\n<p>Ability to run multiple preflight rootscript items if desired. Preflight script are always executed in parallel. If either one of them exists with non zero exit code IAS proceeds to the SetupAssistant phase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hash validation modes<\/h2>\n\n\n\n<p>Ability to control SHA-256 validation. There are three options set in the configuration Plist:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Fail:<\/strong> Abort run if computed hash does not match after multiple redownloads (IA behavior, default)<\/li><li><strong>Warning<\/strong>: Proceed with the execution if the hash of the two subsequent file downloads is the same. Issue a warning to the system log.<\/li><li><strong>None<\/strong>: Do not check the SHA-256 hash at all.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Item failure responses<\/h2>\n\n\n\n<p>Ability to configure response to item failure. There is a new option applicable for every SetupAssistant and Userland phase items:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Failable<\/strong>: If download fails item execution is skipped with an error message in the log.<\/li><li><strong>FailableExecution<\/strong>: Download failure aborts the IAS run. Item execution finishing with non-zero exit code does not end the IAS run (IA behavior, default).<\/li><li><strong>FailureIsNotAnOption<\/strong>: If either download fails or execution returns non-zero exit code IAS run is aborted.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Possible future features<\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>Support configuration via the configuration profiles (NSUserDefaults).<\/li><li>Reintroduce the option to automatically write some of the status messages to DEP notify control file.<\/li><li>(Danger zone) Use private frameworks to get list of package receipts (<a href=\"http:\/\/newosxbook.com\/bonus\/vol1AppA.html\" data-type=\"URL\" data-id=\"http:\/\/newosxbook.com\/bonus\/vol1AppA.html\">PKInstallHistory<\/a>) and start package installs (unkown if possible).<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>InstallApplications Swiftly (IAS) intends to be a replacement for InstallApplications (IA) tool.&nbsp;Code is not yet ready for public release. I still need to finish some parts and do the final refactoring not to mention proper testing. Expect alpha version in three to four weeks.&nbsp; This blog post outlines the development goals, implementation decisions and differences &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/macadmin.cz\/?p=1434&#038;lang=en\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;InstallApplications Swiftly&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1434","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/posts\/1434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1434"}],"version-history":[{"count":16,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/posts\/1434\/revisions"}],"predecessor-version":[{"id":1455,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/posts\/1434\/revisions\/1455"}],"wp:attachment":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}