From db514451bc320698688cbe3ce0bc5a4cc66c61a9 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sun, 22 Mar 2026 21:02:31 -0700 Subject: [PATCH] Deployed 329ffa1 to 0.48 with MkDocs 1.6.1 and mike 2.1.3 --- 0.48/404.html | 1433 ++++ 0.48/Docs/Address/index.html | 1547 ++++ 0.48/Docs/Carrier_Service/index.html | 2125 ++++++ 0.48/Docs/Database/index.html | 1775 +++++ 0.48/Docs/Events/index.html | 1710 +++++ 0.48/Docs/FormPS1583/index.html | 1727 +++++ 0.48/Docs/HTTP_API_Server/index.html | 1615 ++++ 0.48/Docs/HiddenConfigs/index.html | 1490 ++++ 0.48/Docs/Parcel/index.html | 1946 +++++ 0.48/Docs/Receipt/index.html | 2030 +++++ 0.48/Docs/ReceiptPrinter/index.html | 1615 ++++ 0.48/Docs/TrackingBarcode/index.html | 1636 ++++ 0.48/Examples/01Minimal/index.html | 1479 ++++ 0.48/Examples/02Basic/index.html | 1600 ++++ 0.48/Examples/03Shipping/index.html | 1559 ++++ 0.48/Examples/04CardProcessor/index.html | 1723 +++++ 0.48/Examples/05CryptoProcessor/index.html | 1550 ++++ 0.48/Examples/basic-demo/plugin.js | 65 + 0.48/Examples/basic-demo/uipluginpage.f7 | 56 + 0.48/Examples/crypto-processor/plugin.js | 72 + 0.48/Examples/payment-processor/plugin.js | 244 + 0.48/Examples/shipping/plugin.js | 82 + 0.48/Plugin API/barcode/index.html | 1926 +++++ 0.48/Plugin API/database/index.html | 1578 ++++ 0.48/Plugin API/fs/index.html | 1829 +++++ 0.48/Plugin API/global functions/index.html | 1666 ++++ 0.48/Plugin API/graphics/index.html | 1629 ++++ 0.48/Plugin API/httpserver/index.html | 1734 +++++ 0.48/Plugin API/i18n/index.html | 1898 +++++ 0.48/Plugin API/kiosk/index.html | 1579 ++++ 0.48/Plugin API/mailboxes/index.html | 2341 ++++++ 0.48/Plugin API/pos/index.html | 2440 ++++++ 0.48/Plugin API/print/index.html | 1728 +++++ 0.48/Plugin API/reports/index.html | 1655 ++++ 0.48/Plugin API/settings/index.html | 1658 ++++ 0.48/Plugin API/shipping/index.html | 2196 ++++++ 0.48/Plugin API/storage/index.html | 1845 +++++ 0.48/Plugin API/ui/index.html | 2227 ++++++ 0.48/Plugin API/user/index.html | 1831 +++++ 0.48/Plugin API/util/index.html | 2971 ++++++++ .../fonts.googleapis.com/css.49ea35f2.css | 756 ++ ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 | Bin 0 -> 25464 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2 | Bin 0 -> 18780 bytes ...CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2 | Bin 0 -> 47208 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 | Bin 0 -> 40480 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 | Bin 0 -> 31820 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 | Bin 0 -> 15344 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 | Bin 0 -> 4452 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2 | Bin 0 -> 22440 bytes ...Eu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 | Bin 0 -> 45184 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 | Bin 0 -> 17624 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 | Bin 0 -> 4348 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 | Bin 0 -> 36652 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 | Bin 0 -> 29392 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 | Bin 0 -> 14340 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 | Bin 0 -> 23664 bytes ...O7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 | Bin 0 -> 43136 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 | Bin 0 -> 41348 bytes ...CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 | Bin 0 -> 20556 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2 | Bin 0 -> 10308 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 | Bin 0 -> 22916 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 | Bin 0 -> 35912 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 | Bin 0 -> 14044 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 | Bin 0 -> 32796 bytes .../v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 | Bin 0 -> 18592 bytes .../v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 | Bin 0 -> 35328 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 | Bin 0 -> 14952 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 | Bin 0 -> 38696 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2 | Bin 0 -> 10832 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2 | Bin 0 -> 24408 bytes .../L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 | Bin 0 -> 20504 bytes .../postalpoint.app/images/favicon-voxel.png | Bin 0 -> 1484 bytes .../unpkg.com/mermaid@11/dist/mermaid.min.js | 3022 ++++++++ 0.48/assets/images/favicon.png | Bin 0 -> 1870 bytes .../assets/javascripts/bundle.79ae519e.min.js | 16 + .../javascripts/bundle.79ae519e.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + 0.48/assets/javascripts/lunr/tinyseg.js | 206 + 0.48/assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.2c215733.min.js | 42 + .../workers/search.2c215733.min.js.map | 7 + 0.48/assets/logo.svg | 176 + 0.48/assets/styles.css | 4 + 0.48/assets/stylesheets/main.484c7ddc.min.css | 1 + .../stylesheets/main.484c7ddc.min.css.map | 1 + .../stylesheets/palette.ab4e12ef.min.css | 1 + .../stylesheets/palette.ab4e12ef.min.css.map | 1 + 0.48/index.html | 1707 +++++ 0.48/search/search_index.json | 1 + 0.48/sitemap.xml | 3 + 0.48/sitemap.xml.gz | Bin 0 -> 127 bytes versions.json | 5 + 123 files changed, 76761 insertions(+) create mode 100644 0.48/404.html create mode 100644 0.48/Docs/Address/index.html create mode 100644 0.48/Docs/Carrier_Service/index.html create mode 100644 0.48/Docs/Database/index.html create mode 100644 0.48/Docs/Events/index.html create mode 100644 0.48/Docs/FormPS1583/index.html create mode 100644 0.48/Docs/HTTP_API_Server/index.html create mode 100644 0.48/Docs/HiddenConfigs/index.html create mode 100644 0.48/Docs/Parcel/index.html create mode 100644 0.48/Docs/Receipt/index.html create mode 100644 0.48/Docs/ReceiptPrinter/index.html create mode 100644 0.48/Docs/TrackingBarcode/index.html create mode 100644 0.48/Examples/01Minimal/index.html create mode 100644 0.48/Examples/02Basic/index.html create mode 100644 0.48/Examples/03Shipping/index.html create mode 100644 0.48/Examples/04CardProcessor/index.html create mode 100644 0.48/Examples/05CryptoProcessor/index.html create mode 100644 0.48/Examples/basic-demo/plugin.js create mode 100644 0.48/Examples/basic-demo/uipluginpage.f7 create mode 100644 0.48/Examples/crypto-processor/plugin.js create mode 100644 0.48/Examples/payment-processor/plugin.js create mode 100644 0.48/Examples/shipping/plugin.js create mode 100644 0.48/Plugin API/barcode/index.html create mode 100644 0.48/Plugin API/database/index.html create mode 100644 0.48/Plugin API/fs/index.html create mode 100644 0.48/Plugin API/global functions/index.html create mode 100644 0.48/Plugin API/graphics/index.html create mode 100644 0.48/Plugin API/httpserver/index.html create mode 100644 0.48/Plugin API/i18n/index.html create mode 100644 0.48/Plugin API/kiosk/index.html create mode 100644 0.48/Plugin API/mailboxes/index.html create mode 100644 0.48/Plugin API/pos/index.html create mode 100644 0.48/Plugin API/print/index.html create mode 100644 0.48/Plugin API/reports/index.html create mode 100644 0.48/Plugin API/settings/index.html create mode 100644 0.48/Plugin API/shipping/index.html create mode 100644 0.48/Plugin API/storage/index.html create mode 100644 0.48/Plugin API/ui/index.html create mode 100644 0.48/Plugin API/user/index.html create mode 100644 0.48/Plugin API/util/index.html create mode 100644 0.48/assets/external/fonts.googleapis.com/css.49ea35f2.css create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2 create mode 100644 0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 create mode 100644 0.48/assets/external/postalpoint.app/images/favicon-voxel.png create mode 100644 0.48/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js create mode 100644 0.48/assets/images/favicon.png create mode 100644 0.48/assets/javascripts/bundle.79ae519e.min.js create mode 100644 0.48/assets/javascripts/bundle.79ae519e.min.js.map create mode 100644 0.48/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 0.48/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 0.48/assets/javascripts/lunr/tinyseg.js create mode 100644 0.48/assets/javascripts/lunr/wordcut.js create mode 100644 0.48/assets/javascripts/workers/search.2c215733.min.js create mode 100644 0.48/assets/javascripts/workers/search.2c215733.min.js.map create mode 100644 0.48/assets/logo.svg create mode 100644 0.48/assets/styles.css create mode 100644 0.48/assets/stylesheets/main.484c7ddc.min.css create mode 100644 0.48/assets/stylesheets/main.484c7ddc.min.css.map create mode 100644 0.48/assets/stylesheets/palette.ab4e12ef.min.css create mode 100644 0.48/assets/stylesheets/palette.ab4e12ef.min.css.map create mode 100644 0.48/index.html create mode 100644 0.48/search/search_index.json create mode 100644 0.48/sitemap.xml create mode 100644 0.48/sitemap.xml.gz diff --git a/0.48/404.html b/0.48/404.html new file mode 100644 index 0000000..560629a --- /dev/null +++ b/0.48/404.html @@ -0,0 +1,1433 @@ + + + + + + + + + + + + + + + + + + + + + + PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/Address/index.html b/0.48/Docs/Address/index.html new file mode 100644 index 0000000..ae02917 --- /dev/null +++ b/0.48/Docs/Address/index.html @@ -0,0 +1,1547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Address object - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Address object

+
export default class Address {
+    constructor(uuid = "", name = "", company = "", street1 = "", street2 = "", zip = "", city = "", state = "", country = "", phone = "", email = "", taxid = "") {
+        this.uuid = uuid;
+        this.name = name;
+        this.company = company;
+        this.street1 = street1;
+        this.street2 = street2;
+        this.zip = zip;
+        this.city = city;
+        this.state = state;
+        this.country = country;
+        this.phone = phone;
+        this.email = email;
+        this.taxid = taxid;
+        this.residential = null;
+    }
+
+    static fromObject(address) {
+        if (address instanceof Address) {
+            return address;
+        }
+        var a = new Address(address.uuid ?? "", address.name, address.company, address.street1,
+                address.street2, address.zip, address.city, address.state, address.country,
+                address.phone, address.email, address.taxid);
+        return a;
+    }
+
+    toStringArray(expandCountry = false) {
+        var citystatezipLine = [this.city, this.state, this.zip].filter(Boolean);
+        var country = this.country == defaultCountryCode() ? "" : this.country;
+        if (expandCountry && country != "") {
+            country = getCountryNameForISO(country);
+        }
+        return [this.name, this.company, this.street1, this.street2, `${citystatezipLine.join(" ")}`, country, (this.taxid ? "Tax ID " + this.taxid : "")].filter(Boolean);
+    }
+
+    /**
+     * Test if the address provided is the same as this address.
+     */
+    equals(address, checkUUID = false) {
+        if (
+                (checkUUID ? this.uuid == address.uuid : true)
+                && this.name == address.name
+                && this.company == address.company
+                && this.street1 == address.street1
+                && this.street2 == address.street2
+                && this.city == address.city
+                && this.state == address.state
+                && this.zip == address.zip
+                && this.country == address.country
+                && this.taxid == address.taxid) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Test if an address is the same delivery point as this address.
+     */
+    dpEquals(address) {
+        if (
+                this.street1 == address.street1
+                && this.street2 == address.street2
+                && this.city == address.city
+                && this.state == address.state
+                && this.zip == address.zip
+                && this.country == address.country) {
+            return true;
+        }
+        return false;
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/Carrier_Service/index.html b/0.48/Docs/Carrier_Service/index.html new file mode 100644 index 0000000..8d13eb9 --- /dev/null +++ b/0.48/Docs/Carrier_Service/index.html @@ -0,0 +1,2125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + getCarrierName and getServiceName - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

getCarrierName and getServiceName

+

This is the source code for global.apis.shipping.getCarrierName and global.apis.shipping.getServiceName.

+

getCarrierName

+
export function getCarrierName(carrier) {
+    switch (carrier) {
+        case "USPS":
+        case "USPSReturns":
+        case "usps":
+            return "USPS";
+        case "UPS":
+        case "UPSDAP":
+        case "ups":
+            return "UPS";
+        case "FedExDefault":
+        case "FedExSmartPost":
+        case "fedex":
+            return "FedEx";
+        case "DHLExpress":
+        case "dhl_express":
+            return "DHL Express";
+        case "DhlEcs":
+            return "DHL eCommerce";
+        case "SpeedeeAccount":
+            return "Spee-Dee";
+        case "globalpost":
+            return "GlobalPost";
+        case "AccurateAccount":
+            return "Accurate Courier Express";
+        case "ApcAccount":
+            return "APC";
+        case "AsendiaUsaAccount":
+            return "Asendia";
+        case "BetterTrucksAccount":
+            return "Better Trucks";
+        case "BluestreakAccount":
+            return "Blue Streak";
+        case "CanadaPostAccount":
+        case "CanadaPost":
+            return "Canada Post";
+        case "GsoAccount":
+            return "GLS";
+        case "LsoAccount":
+            return "LSO";
+        case "OntracV3Account":
+            return "OnTrac";
+        case "USAExportPBA":
+            return "Asendia";
+        case "FirstChoiceAccount":
+            return "1st Choice Delivery";
+        case "PurolatorAccount":
+            return "Purolator";
+        case "CanparAccount":
+            return "Canpar";
+        case "MaerskAccount":
+            return "Maersk";
+    }
+    if (carrier.endsWith("Account")) {
+        // A lot of EasyPost carriers are the carrier name and the word Account
+        return carrier.replace("Account", "");
+    }
+    return carrier;
+}
+
+

getServiceName

+
export function getServiceName(serviceId, carrierId = "USPS") {
+    var carrier = getCarrierName(carrierId);
+    switch (serviceId) {
+        // Ambiguous
+        case "":
+            // Used internally if no service ID defined by a plugin or whatever
+            return "";
+        case "Ground":
+            return "Ground";
+        case "Express":
+            if (carrier == "UPS") {
+                return "Worldwide Express";
+            } else if (carrier == "USPS") {
+                return "Priority Mail Express";
+            } else {
+                return "Express";
+            }
+        case "Priority":
+            if (carrier == "USPS") {
+                return "Priority Mail";
+            }
+            return "Priority";
+
+
+            // USPS
+        case "First":
+        case "usps_first_class_mail":
+        case "First-Class Mail":
+            return "First-Class Mail";
+        case "FirstClassMailInternational":
+        case "usps_first_class_mail_international":
+        case "First-Class Mail International":
+            return "First-Class Mail International";
+        case "GroundAdvantage":
+        case "usps_ground_advantage":
+        case "Ground Advantage":
+            return "Ground Advantage";
+        case "MediaMail":
+        case "usps_media_mail":
+        case "Media Mail":
+            return "Media Mail";
+        case "LibraryMail":
+        case "usps_library_mail":
+        case "Library Mail":
+            return "Library Mail";
+        case "usps_priority_mail":
+        case "Priority Mail":
+            return "Priority Mail";
+        case "PriorityMailInternational":
+        case "usps_priority_mail_international":
+        case "Priority Mail International":
+            return "Priority Mail International";
+        case "usps_priority_mail_express":
+        case "Priority Mail Express":
+            return "Priority Mail Express";
+        case "ExpressMailInternational":
+        case "usps_priority_mail_express_international":
+        case "Priority Mail Express International":
+            return "Priority Mail Express International";
+        case "FirstClassPackageInternationalService":
+        case "First-Class Pkg International":
+            return "First-Class Pkg International";
+
+
+            // UPS
+        case "UPSWorldwideExpress":
+        case "ups_worldwide_express":
+            return "Worldwide Express";
+        case "ExpressPlus":
+        case "UPSExpressPlus":
+        case "ups_worldwide_express_plus":
+            return "Worldwide Express Plus";
+        case "Expedited":
+        case "UPSWorldwideExpedited":
+        case "ups_worldwide_expedited":
+            return "Worldwide Expedited";
+        case "UPSWorldwideEconomyDDU":
+            return "Worldwide Economy DDU";
+        case "NextDayAir":
+        case "ups_next_day_air":
+            return "Next Day Air";
+        case "NextDayAirSaver":
+        case "ups_next_day_air_saver":
+            return "Next Day Air Saver";
+        case "NextDayAirEarlyAM":
+        case "ups_next_day_air_early":
+            return "Next Day Air A.M.";
+        case "2ndDayAir":
+        case "ups_2nd_day_air":
+            return "2nd Day Air";
+        case "2ndDayAirAM":
+        case "ups_2nd_day_air_am":
+            return "2nd Day Air A.M.";
+        case "3DaySelect":
+        case "ups_3_day_select":
+            return "3-Day Select";
+        case "ups_ground":
+            return "Ground";
+        case "UPSGroundsaverGreaterThan1lb":
+            return "Ground Saver";
+        case "UPSStandard":
+        case "ups_standard":
+            return "Standard";
+        case "UPSSaver":
+        case "ups_worldwide_saver":
+            return "Worldwide Saver";
+
+
+            // FedEx
+        case "FEDEX_GROUND":
+        case "fedex_ground":
+            return "Ground";
+        case "FEDEX_2_DAY":
+        case "fedex_2day":
+            return "2 Day";
+        case "FEDEX_2_DAY_AM":
+        case "fedex_2day_am":
+            return "2 Day AM";
+        case "FEDEX_EXPRESS_SAVER":
+        case "fedex_express_saver":
+            return "Express Saver";
+        case "STANDARD_OVERNIGHT":
+        case "fedex_standard_overnight":
+            return "Standard Overnight";
+        case "FIRST_OVERNIGHT":
+        case "fedex_first_overnight":
+            return "First Overnight";
+        case "PRIORITY_OVERNIGHT":
+        case "fedex_priority_overnight":
+            return "Priority Overnight";
+        case "INTERNATIONAL_ECONOMY":
+        case "fedex_international_economy":
+            return "International Economy";
+        case "INTERNATIONAL_FIRST":
+        case "fedex_international_first":
+            return "International First";
+        case "FEDEX_INTERNATIONAL_PRIORITY":
+        case "INTERNATIONAL_PRIORITY":
+        case "fedex_international_priority":
+            return "International Priority";
+        case "FEDEX_INTERNATIONAL_PRIORITY_EXPRESS":
+        case "INTERNATIONAL_PRIORITY_EXPRESS":
+            return "International Priority Express";
+        case "FEDEX_INTERNATIONAL_CONNECT_PLUS":
+        case "INTERNATIONAL_CONNECT_PLUS":
+            return "International Connect Plus";
+        case "GROUND_HOME_DELIVERY":
+        case "fedex_home_delivery":
+            return "Ground Home Delivery";
+        case "SMART_POST":
+            return "Ground Economy";
+        case "FEDEX_FIRST_FREIGHT":
+            return "First Overnight Freight";
+        case "FEDEX_1_DAY_FREIGHT":
+            return "1-Day Freight";
+        case "FEDEX_2_DAY_FREIGHT":
+            return "2-Day Freight";
+        case "FEDEX_3_DAY_FREIGHT":
+            return "3-Day Freight";
+        case "INTERNATIONAL_PRIORITY_FREIGHT":
+            return "International Priority Freight";
+        case "INTERNATIONAL_ECONOMY_FREIGHT":
+            return "International Economy Freight";
+
+
+            // USPS Returns
+        case "GroundAdvantageReturn":
+            return "Ground Advantage Return";
+        case "PriorityMailReturn":
+            return "Priority Mail Return";
+        case "PriorityMailExpressReturn":
+            return "Priority Mail Express Return";
+
+
+            // DHL Express
+        case "DomesticEconomySelect":
+            return "Domestic Economy Select";
+        case "DomesticExpress":
+            return "Domestic Express";
+        case "DomesticExpress1030":
+            return "Domestic Express 10:30";
+        case "DomesticExpress1200":
+            return "Domestic Express 12:00";
+        case "EconomySelect":
+            return "Economy Select Document";
+        case "EconomySelectNonDoc":
+            return "Economy Select Non-Document";
+        case "EuroPack":
+            return "EuroPack Document";
+        case "EuropackNonDoc":
+            return "EuroPack Non-Document";
+        case "Express1030":
+            return "10:30 Document";
+        case "Express1030NonDoc":
+            return "10:30 Non-Document";
+        case "Express1200NonDoc":
+            return "12:00 Non-Document";
+        case "Express1200":
+            return "12:00 Document";
+        case "Express900":
+            return "9:00 Document";
+        case "Express900NonDoc":
+            return "9:00 Non-Doc";
+        case "ExpressEasy":
+            return "Easy Document";
+        case "ExpressEasyNonDoc":
+            return "Easy Non-Document";
+        case "ExpressEnvelope":
+            return "Envelope";
+        case "ExpressWorldwide":
+        case "dhl_express_worldwide":
+            return "Worldwide Document";
+        case "ExpressWorldwideB2C":
+            return "Worldwide B2C";
+        case "ExpressWorldwideB2CNonDoc":
+            return "Worldwide B2C Non-Document";
+        case "ExpressWorldwideECX":
+            return "Worldwide ECX";
+        case "ExpressWorldwideNonDoc":
+            return "Worldwide Non-Document";
+
+
+            // DHL eCommerce
+        case "DHLParcelExpedited":
+            return "Parcel Expedited";
+        case "DHLParcelExpeditedMax":
+            return "Parcel Expedited Max";
+        case "DHLParcelGround":
+            return "Parcel Ground";
+        case "DHLBPMExpedited":
+            return "PM Expedited";
+        case "DHLBPMGround":
+            return "PM Ground";
+        case "DHLParcelInternationalDirect":
+            return "Parcel International Direct";
+        case "DHLParcelInternationalStandard":
+            return "Parcel International Standard";
+        case "DHLParcelInternationalDirectSMB":
+            return "Parcel International Direct";
+        case "DHLParcelInternationalStandardSMB":
+            return "Parcel International Standard";
+        case "DHLPacketInternational":
+            return "Packet International";
+        case "DHLParcelInternationalDirectPriority":
+            return "Parcel International Direct Priority";
+        case "DHLParcelInternationalDirectStandard":
+            return "Parcel International Direct Standard";
+
+            // Asendia USA Export
+        case "USAExportStandard":
+            return "USA Export Standard";
+        case "USAExportPlus":
+            return "USA Export Plus";
+        case "USAExportSelect":
+            return "USA Export Select";
+
+            // Spee-Dee
+        case "SpeeDeeDelivery":
+            return "Delivery";
+
+            // GlobalPost
+        case "globalpost_standard_international":
+            return "Standard International";
+        case "globalpost_economy_international":
+            return "Economy International";
+        case "globalpost_plus":
+            return "Plus";
+        case "globalpost_first_class_international":
+            return "First-Class International";
+
+            // Canada Post
+        case "RegularParcel":
+            return "Regular Parcel";
+        case "ExpeditedParcel":
+            return "Expedited Parcel";
+        case "Xpresspost":
+            return "Xpresspost";
+        case "ExpeditedParcelUSA":
+            return "Expedited Parcel USA";
+        case "SmallPacketUSAAir":
+            return "Small Packet USA Air";
+        case "TrackedPacketUSA":
+            return "Tracked Packet USA";
+        case "TrackedPacketUSALVM":
+            return "Tracked Packet USA LVM";
+        case "XpresspostUSA":
+            return "Xpresspost USA";
+        case "XpresspostInternational":
+            return "Xpresspost Int'l";
+        case "InternationalParcelAir":
+            return "Int'l Parcel Air";
+        case "InternationalParcelSurface":
+            return "Int'l Parcel Surface";
+        case "SmallPacketInternationalAir":
+            return "Small Packet Int'l Air";
+        case "SmallPacketInternationalSurface":
+            return "Small Packet Int'l Surface";
+        case "TrackedPacketInternational":
+            return "Tracked Packet Int'l";
+        case "ExpeditedParcelPlus":
+            return "Expedited Parcel Plus";
+
+
+            // GLS US
+        case "EarlyPriorityOvernight":
+            return "Early Priority Overnight";
+        case "PriorityOvernight":
+            return "Priority Overnight";
+        case "CaliforniaParcelService":
+            return "California Parcel";
+        case "SaturdayDeliveryService":
+            return "Saturday Delivery";
+        case "EarlySaturdayService":
+            return "Early Saturday";
+        case "NoonPriorityService":
+            return "Noon Priority";
+
+            // OnTrac
+        case "GRND":
+            return "Ground";
+
+            // LSO
+        case "PriorityEarly":
+            return "Priority Early";
+        case "PriorityBasic":
+            return "Priority Basic";
+        case "Priority2ndDay":
+            return "Priority 2nd Day";
+        case "GroundEarly":
+            return "Ground Early";
+        case "GroundBasic":
+            return "Ground Basic";
+        case "ECommerce":
+            return "ECommerce";
+
+            // Canpar
+        case "USA":
+            return "USA";
+        case "SelectLetter":
+            return "Select Letter";
+        case "SelectPak":
+            return "Select Pak";
+        case "Select":
+            return "Select";
+        case "OvernightLetter":
+            return "Overnight Letter";
+        case "Overnight":
+            return "Overnight";
+        case "USALetter":
+            return "USA Letter";
+        case "USAPak":
+            return "USA Pak";
+        case "SelectUSA":
+            return "Select USA";
+        case "International":
+            return "International";
+
+            // Purolator
+        case "PurolatorExpress":
+            return "Express";
+        case "PurolatorExpress12PM":
+            return "Express 12PM";
+        case "PurolatorExpressPack12PM":
+            return "Express Pack 12PM";
+        case "PurolatorExpressBox12PM":
+            return "Express Box 12PM";
+        case "PurolatorExpressEnvelope12PM":
+            return "Express Envelope 12PM";
+        case "PurolatorExpress1030AM":
+            return "Express 10:30AM";
+        case "PurolatorExpress9AM":
+            return "Express 9AM";
+        case "PurolatorExpressBox":
+            return "Express Box";
+        case "PurolatorExpressBox1030AM":
+            return "Express Box 10:30AM";
+        case "PurolatorExpressBox9AM":
+            return "Express Box 9AM";
+        case "PurolatorExpressBoxEvening":
+            return "Express Box Evening";
+        case "PurolatorExpressBoxInternational":
+            return "Express Box International";
+        case "PurolatorExpressBoxUS":
+            return "Express Box US";
+        case "PurolatorExpressEnvelope":
+            return "Express Envelope";
+        case "PurolatorExpressEnvelope1030AM":
+            return "Express Envelope 10:30AM";
+        case "PurolatorExpressEnvelope9AM":
+            return "Express Envelope 9AM";
+        case "PurolatorExpressEnvelopeEvening":
+            return "Express Envelope Evening";
+        case "PurolatorExpressEnvelopeInternational":
+            return "Express Envelope International";
+        case "PurolatorExpressEnvelopeUS":
+            return "Express Envelope US";
+        case "PurolatorExpressEvening":
+            return "Express Evening";
+        case "PurolatorExpressInternational":
+            return "Express International";
+        case "PurolatorExpressInternational1030AM":
+            return "Express International 10:30AM";
+        case "PurolatorExpressInternational1200":
+            return "Express International 12:00";
+        case "PurolatorExpressInternational9AM":
+            return "Express International 9AM";
+        case "PurolatorExpressBoxInternational1030AM":
+            return "Express Box International 10:30AM";
+        case "PurolatorExpressBoxInternational1200":
+            return "Express Box International 12:00";
+        case "PurolatorExpressBoxInternational9AM":
+            return "Express Box International 9AM";
+        case "PurolatorExpressEnvelopeInternational1030AM":
+            return "Express Envelope International 10:30AM";
+        case "PurolatorExpressEnvelopeInternational1200":
+            return "Express Envelope International 12:00";
+        case "PurolatorExpressEnvelopeInternational9AM":
+            return "Express Envelope International 9AM";
+        case "PurolatorExpressPackInternational1030AM":
+            return "Express Pack International 10:30AM";
+        case "PurolatorExpressPackInternational1200":
+            return "Express Pack International 12:00";
+        case "PurolatorExpressPackInternational9AM":
+            return "Express Pack International 9AM";
+        case "PurolatorExpressPack":
+            return "Express Pack";
+        case "PurolatorExpressPack1030AM":
+            return "Express Pack 10:30AM";
+        case "PurolatorExpressPack9AM":
+            return "Express Pack 9AM";
+        case "PurolatorExpressPackEvening":
+            return "Express Pack Evening";
+        case "PurolatorExpressPackInternational":
+            return "Express Pack International";
+        case "PurolatorExpressPackUS":
+            return "Express Pack US";
+        case "PurolatorExpressUS":
+            return "Express US";
+        case "PurolatorExpressUS1030AM":
+            return "Express US 10:30AM";
+        case "PurolatorExpressUS1200":
+            return "Express US 12:00";
+        case "PurolatorExpressUS9AM":
+            return "Express US 9AM";
+        case "PurolatorExpressBoxUS1030AM":
+            return "Express Box US 10:30AM";
+        case "PurolatorExpressBoxUS1200":
+            return "Express Box US 12:00";
+        case "PurolatorExpressBoxUS9AM":
+            return "Express Box US 9AM";
+        case "PurolatorExpressEnvelopeUS1030AM":
+            return "Express Envelope US 10:30AM";
+        case "PurolatorExpressEnvelopeUS1200":
+            return "Express Envelope US 12:00";
+        case "PurolatorExpressEnvelopeUS9AM":
+            return "Express Envelope US 9AM";
+        case "PurolatorExpressPackUS1030AM":
+            return "Express Pack US 10:30AM";
+        case "PurolatorExpressPackUS1200":
+            return "Express Pack US 12:00";
+        case "PurolatorExpressPackUS9AM":
+            return "Express Pack US 9AM";
+        case "PurolatorGround":
+            return "Ground";
+        case "PurolatorGround1030AM":
+            return "Ground 10:30AM";
+        case "PurolatorGround9AM":
+            return "Ground 9AM";
+        case "PurolatorGround12PM":
+            return "Ground 12PM";
+        case "PurolatorGroundDistribution":
+            return "Ground Distribution";
+        case "PurolatorGroundEvening":
+            return "Ground Evening";
+        case "PurolatorGroundUS":
+            return "Ground US";
+        case "PurolatorQuickShip":
+            return "QuickShip";
+        case "PurolatorQuickShipEnvelope":
+            return "QuickShip Envelope";
+        case "PurolatorQuickShipPack":
+            return "QuickShip Pack";
+        case "PurolatorQuickShipBox":
+            return "QuickShip Box";
+
+
+            // Maersk Parcel
+        case "Maersk-3-Day":
+            return "3 Day";
+
+    }
+
+    console.warn("Unknown shipping service ID: ", serviceId, "Carrier ID:", carrierId);
+
+    // Snipped: code that attempts to format the service ID nicely based on common naming patterns found in the wild.
+
+    return serviceName;
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/Database/index.html b/0.48/Docs/Database/index.html new file mode 100644 index 0000000..5b882a7 --- /dev/null +++ b/0.48/Docs/Database/index.html @@ -0,0 +1,1775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Database Drivers - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Database Drivers

+

global.apis.database.getConnection() returns one of these, depending on which database is in use.

+

SQLite

+
export class SQLiteAdapter {
+    constructor(db) {
+        this.type = "sqlite";
+        this.db = db;
+    }
+
+    async query(query, replace) {
+        if (global.devMode) {
+            console.info(query, replace);
+        }
+        return await this.db.all(query, replace);
+    }
+
+    async run(statement, replace) {
+        if (global.devMode) {
+            console.info(statement, replace);
+        }
+        return await this.db.run(statement, replace);
+    }
+
+    async exec(statement) {
+        if (global.devMode) {
+            console.info(statement);
+        }
+        return await this.db.exec(statement);
+    }
+
+    async exists(table, where, replace) {
+        const q = await this.db.all("SELECT EXISTS(SELECT 1 FROM " + table + " WHERE " + where + ") as n", replace);
+        if (q[0].n > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    async close() {
+
+    }
+
+    async tableExists(table) {
+        return (await this.db.get(`SELECT count(name) AS cnt FROM sqlite_master WHERE type='table' AND name=?`, table)).cnt > 0;
+    }
+
+    /**
+     * Get the version code set in the database by setSchemaVersion().
+     */
+    async getSchemaVersion() {
+        var res = await this.db.all(`PRAGMA user_version`);
+        return res[0].user_version;
+    }
+
+    /**
+     * Set the database version, using PRAGMA user_version.  Must be an integer.
+     */
+    async setSchemaVersion(version) {
+        await this.db.exec(`PRAGMA user_version = ${version}`);
+    }
+
+}
+
+

Remote host/master

+
export class RemoteDatabaseAdapter {
+    constructor() {
+        this.type = "remote";
+    }
+
+    async apirequest(args) {
+        var resp = await sendToPostalPointHTTPServer(args, "database");
+        if (typeof resp.status == "string" && resp.status == "OK") {
+            return resp.result;
+        } else if (typeof resp.status == "string" && resp.status == "ERR") {
+            if (typeof resp.message == "string") {
+                throw new Error(resp.message);
+            } else {
+                throw new Error(resp);
+            }
+        } else {
+            throw new Error(resp);
+        }
+    }
+
+    async query(query, replace = []) {
+        return await this.apirequest({type: "query", query: query, replace: replace});
+    }
+
+    async run(statement, replace = []) {
+        return await this.apirequest({type: "run", query: statement, replace: replace});
+    }
+
+    async exec(statement) {
+        return await this.apirequest({type: "exec", query: statement});
+    }
+
+    async exists(table, where, replace = []) {
+        return await this.apirequest({type: "exists", table: table, where: where, replace: replace});
+    }
+
+    async close() {
+        // NOOP: We don't care about this
+    }
+
+    async tableExists(table) {
+        return await this.apirequest({type: "tableExists", table: table});
+    }
+
+    async getSchemaVersion() {
+        return await this.apirequest({type: "getSchemaVersion"});
+    }
+
+    async setSchemaVersion(version) {
+        // NOOP: Don't upgrade server's installation, it can do that itself
+    }
+}
+
+

MariaDB/MySQL

+
export class MariaDBAdapter {
+    constructor(connection) {
+        this.type = "mariadb";
+        this.conn = connection;
+    }
+
+    async query(query, replace) {
+        if (global.devMode) {
+            console.info(query, replace);
+        }
+        return await this.conn.query(query, replace);
+    }
+
+    async run(statement, replace) {
+        if (global.devMode) {
+            console.info(statement, replace);
+        }
+        return await this.query(statement, replace);
+    }
+
+    async exec(statement) {
+        if (global.devMode) {
+            console.info(statement);
+        }
+        return await this.run(statement);
+    }
+
+    async exists(table, where, replace) {
+        const q = await this.query("SELECT EXISTS(SELECT 1 FROM " + table + " WHERE " + where + ") as n", replace);
+        if (q[0].n > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    async close() {
+        await this.conn.release();
+    }
+
+    async tableExists(table) {
+        return (await this.query("SHOW TABLES LIKE ?", table)).length > 0;
+    }
+
+    /**
+     * Get the version code set in the database by setSchemaVersion().  Returns zero if not set.
+     */
+    async getSchemaVersion() {
+        if (await this.tableExists("database_metadata")) {
+            var res = await this.query("SELECT `value` FROM database_metadata WHERE `key`='schema_version' LIMIT 1");
+            console.log(res);
+            console.log(res[0].value);
+            if (res.length == 1) {
+                return res[0].value;
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * Set a version number for the database schema.
+     * Must be an integer to maintain code compatibility with SQLite driver.
+     * Will create a "database_metadata" table if required to store the version number.
+     */
+    async setSchemaVersion(version) {
+        if (await this.tableExists("database_metadata")) {
+            await this.query("REPLACE INTO `database_metadata` (`key`, `value`) VALUES (?, ?)", ["schema_version", version]);
+        } else {
+            await this.exec("CREATE TABLE IF NOT EXISTS `database_metadata` ( `key` VARCHAR(50) NOT NULL, `value` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (`key`))");
+            await this.setSchemaVersion(version);
+        }
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/Events/index.html b/0.48/Docs/Events/index.html new file mode 100644 index 0000000..6c84029 --- /dev/null +++ b/0.48/Docs/Events/index.html @@ -0,0 +1,1710 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Event Bus - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Event Bus

+

Plugins can use global.apis.eventbus to receive events when certain actions happen in PostalPoint.

+

Event List

+
    +
  • barcodeScanned: Contents of a barcode that was just scanned, as a string. String also contains any non-printing characters in the barcode.
  • +
  • browserCloseRequest: The embedded web browser listens for this event, and closes itself when received.
  • +
  • browserNavigate: Contains the URL the embedded web browser just navigated to.
  • +
  • sendToCustomerScreen: Emit to send data via window.postMessage to a custom HTML interface on the customer-facing display.
  • +
  • receiveFromCustomerScreen: Contains the event sent from the customer-facing display's custom HTML interface via window.parent.postMessage
  • +
  • transactionFinished: Contains a receipt object of a transaction that was just finalized. See below for event data details.
  • +
  • customerSignatureCollected: Contains a signature image from the customer-facing display. See below for event data details.
  • +
  • settingsSaved: Emitted when PostalPoint's settings are saved. Usually this means the user changed a setting in the UI.
  • +
  • pluginSettingsSaved: Emitted when the user saves a plugin's settings. The plugin ID string is sent as the event data.
  • +
  • packageCheckIn: Emitted when a package is checked in to a mailbox or for Hold At Location. See below for event data details.
  • +
  • mailboxMailDelivered: Emitted when mail delivery notifications are sent by the user. Data is an array of the mailbox numbers notifications are being sent for.
  • +
+

Example Code

+
// Handle a barcode scan.
+// Remember that PostalPoint will probably also be doing something in response to the barcode.
+global.apis.eventbus.on("barcodeScanned", function (barcodedata) {
+    // do something with the barcode
+});
+
+// Close the embedded web browser, returning the user to whatever was onscreen before it opened
+global.apis.eventbus.emit("browserCloseRequest");
+
+

Event Data Objects

+

For events that return an object instead of a single value.

+

transactionFinished

+

See Receipt

+

customerSignatureCollected

+
{
+    "svg": "data:image/svg+xml;base64,...",
+    "png": "data:image/png;base64,..."
+}
+
+

packageCheckIn

+
{
+    tag: "abcxyz123456", // Unique ID for the package, also found in the shelf label barcode.
+    tracking: "94001...", // Package tracking number. May be an empty string for items without tracking.
+    carrier: "FedEx", // Package carrier name, if detectable from the tracking number.  Otherwise an empty string.
+    mailbox: "123", // Mailbox number. Will be "HAL" for Hold At Location packages.
+    isHAL: false, // True if package is for Hold At Location.
+    recipient: "", // Hold At Location recipient name, or empty string if not HAL.
+    toLocker: "5", // Parcel locker number, or false if not going to a parcel locker.
+    shelfLabelPrinted: true // Indicates if a shelf label was printed for this package.  Will be false if going to a locker, if the user requested no label, or if the label failed to print.
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/FormPS1583/index.html b/0.48/Docs/FormPS1583/index.html new file mode 100644 index 0000000..71785c6 --- /dev/null +++ b/0.48/Docs/FormPS1583/index.html @@ -0,0 +1,1727 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + FormPS1583 object - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

FormPS1583 object

+
export class FormPS1583 {
+    constructor() {
+        this.formRevision = LATEST_FORM_REVISION; // Currently "June2024"
+        this.pmbOpenedDate = new Date();
+        this.pmbClosedDate = null;
+        this.cmraStreetAddress = getSetting("origin_street1");
+        this.pmbNumber = "";
+        this.cmraZIP = getSetting("origin_zip");
+        var cmraZIPData = getZIP(this.cmraZIP);
+        if (cmraZIPData) {
+            this.cmraCity = cmraZIPData.city;
+            this.cmraState = cmraZIPData.state;
+        } else {
+            this.cmraCity = getSetting("origin_city", "");
+            this.cmraState = getSetting("origin_state", "");
+        }
+        this.serviceTypeBusiness = false; // true for business PMB, false for residential
+        this.applicant = {
+            firstName: "",
+            lastName: "",
+            middleName: "",
+            phone: "",
+            email: "",
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            courtProtected: false,
+            photoID: {
+                name: "",
+                number: "",
+                issuer: "",
+                expirationDate: null,
+                type: null  // "DL/ID", "UniformedService", "USAccess", "USUni",
+                        // "Passport", "Matricula", "NEXUS",
+                        // "CertOfNaturalization", "USPermResident"
+            },
+            addressID: {
+                name: "",
+                streetAddress: "",
+                city: "",
+                state: "",
+                zip: "",
+                country: "",
+                type: null, // "DL/ID", "Lease", "Mortgage", "Insurance", "VehicleReg", "Voter"
+                expirationDate: null // Optional currently but must be kept current - Oct 2025
+            }
+        };
+        this.authorizedIndividual = {
+            firstName: "",
+            lastName: "",
+            middleName: "",
+            phone: "",
+            email: "",
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            photoID: {
+                name: "",
+                number: "",
+                issuer: "",
+                expirationDate: null,
+                type: null  // "DL/ID", "UniformedService", "USAccess", "USUni",
+                        // "Passport", "Matricula", "NEXUS",
+                        // "CertOfNaturalization", "USPermResident"
+            },
+            addressID: {
+                name: "",
+                streetAddress: "",
+                city: "",
+                state: "",
+                zip: "",
+                country: "",
+                type: null, // "DL/ID", "Lease", "Mortgage", "Insurance", "VehicleReg", "Voter"
+                expirationDate: null // Optional currently but must be kept current - Oct 2025
+            }
+        };
+        this.mailTransferredTo = {
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            phone: "",
+            email: ""
+        };
+        this.business = {
+            name: "",
+            type: "",
+            streetAddress: "",
+            city: "",
+            state: "",
+            zip: "",
+            country: "",
+            phone: "",
+            placeOfRegistration: ""
+        };
+        this.additionalRecipients = []; // Array of strings containing names
+        this.applicantSignature = ""; // PNG image data URI
+        this.applicantSignatureDate = null;
+        this.cmraSignature = ""; // PNG image data URI
+        this.cmraSignatureDate = null;
+        this.hasForwardingAddress = false;
+    }
+
+    getTermsAndConditions() {
+        return DEFAULT_TERMS_CONDITIONS[this.formRevision];
+    }
+
+    getApplicantForwardingAddress() {
+        if (this.mailTransferredTo.streetAddress != "") {
+            return new Address(null,
+                    [this.applicant.firstName, this.applicant.lastName].filter(Boolean).join(" "),
+                    this.business.name ?? "",
+                    this.mailTransferredTo.streetAddress,
+                    "",
+                    this.mailTransferredTo.zip,
+                    this.mailTransferredTo.city,
+                    this.mailTransferredTo.state,
+                    this.mailTransferredTo.country ?? "US",
+                    this.mailTransferredTo.phone ?? "",
+                    this.mailTransferredTo.email ?? ""
+                    );
+        }
+        return new Address(null,
+                [this.applicant.firstName, this.applicant.lastName].filter(Boolean).join(" "),
+                this.business.name ?? "",
+                this.applicant.streetAddress,
+                "",
+                this.applicant.zip,
+                this.applicant.city,
+                this.applicant.state,
+                this.applicant.country ?? "US",
+                this.applicant.phone ?? "",
+                this.applicant.email ?? ""
+                );
+    }
+
+    getFormFields() {
+        var fields = FORM_FIELDS[this.formRevision];
+        function getNestedValue(obj, path) {
+            return path.split('.').reduce((o, key) => (o ? o[key] : ""), obj);
+        }
+        var outfields = [];
+        var groupheading = {};
+        var groupfields = [];
+        for (var prop in fields) {
+            if (fields[prop].t == "heading") {
+                if (groupfields.length > 0) {
+                    groupheading.fields = groupfields;
+                    outfields.push(groupheading);
+                    groupfields = [];
+                }
+                groupheading = {
+                    heading: fields[prop].l,
+                    groupid: fields[prop].group ?? null,
+                    fields: []
+                };
+            }
+            fields[prop].n = prop;
+            fields[prop].v = getNestedValue(this, prop);
+            if (typeof fields[prop].v == "undefined" || fields[prop].v == null) {
+                fields[prop].v = "";
+            }
+            if (fields[prop].t == "date") {
+                if (fields[prop].v instanceof Date) {
+                    // Cancel out the timezone in the date object
+                    // If we don't do this, the dates will be subtracted by one day each time we load
+                    // https://stackoverflow.com/a/17329571
+                    fields[prop].v.setTime(fields[prop].v.getTime() + fields[prop].v.getTimezoneOffset() * 60 * 1000);
+                }
+                fields[prop].v = formatTimestamp("Y-m-d", fields[prop].v);
+                if (fields[prop].v == "1969-12-31" || fields[prop].v == "1970-01-01") {
+                    fields[prop].v = "";
+                }
+            }
+            if (fields[prop].t == "select" && typeof fields[prop].b == "boolean") {
+                fields[prop].v = fields[prop].v ? "true" : "";
+            }
+            if (fields[prop].t != "heading") {
+                groupfields.push(fields[prop]);
+            }
+        }
+        if (groupfields != []) {
+            groupheading.fields = groupfields;
+            outfields.push(groupheading);
+        }
+        return outfields;
+    }
+
+    static fromHTMLFormData(formdata, revision = LATEST_FORM_REVISION) {
+        var f = new FormPS1583();
+
+        function setNestedValue(obj, path, value) {
+            const keys = path.split('.');
+            const lastKey = keys.pop();
+            const target = keys.reduce((o, key) => {
+                if (o[key] === undefined)
+                    o[key] = {};
+                return o[key];
+            }, obj);
+            if (typeof FORM_FIELDS[revision][path].b == "boolean") {
+                target[lastKey] = (value == "true" || value == true);
+            } else {
+                target[lastKey] = value;
+            }
+        }
+
+        for (var prop in formdata) {
+            setNestedValue(f, prop, formdata[prop]);
+        }
+
+        return f;
+    }
+
+    static fromJSON(o) {
+        var f = new FormPS1583();
+        f.formRevision = o.formRevision ?? LATEST_FORM_REVISION;
+        f.pmbOpenedDate = new Date(o.pmbOpenedDate);
+        f.pmbClosedDate = o.pmbClosedDate ? new Date(o.pmbClosedDate) : null;
+        f.cmraStreetAddress = o.cmraStreetAddress;
+        f.pmbNumber = o.pmbNumber;
+        f.cmraCity = o.cmraCity;
+        // snip, see constructor for full data structure
+        return f;
+    }
+
+    toJSON() {
+        return {
+            formRevision: this.formRevision,
+            pmbOpenedDate: this.pmbOpenedDate,
+            pmbClosedDate: this.pmbClosedDate,
+            cmraStreetAddress: this.cmraStreetAddress,
+            pmbNumber: this.pmbNumber,
+            cmraCity: this.cmraCity,
+            // snip, see constructor for full data structure
+        };
+    }
+
+    /**
+     * Render this form to PDF
+     * @returns PDF bytes
+     */
+    async getPDF() {
+        // snip, it draws the form contents onto a PDF using the pdf-lib library
+        // If you really want to see how, email us for the code
+        return await document.save();
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/HTTP_API_Server/index.html b/0.48/Docs/HTTP_API_Server/index.html new file mode 100644 index 0000000..80d598c --- /dev/null +++ b/0.48/Docs/HTTP_API_Server/index.html @@ -0,0 +1,1615 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + HTTP API Server - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

HTTP API Server

+

PostalPoint runs a local HTTP server to allow communication with other devices on the LAN.

+

With the httpserver plugin API, plugins can add their own local API endpoints.

+

Valid HTTP API requests are POST requests with either a JSON request body, or an entirely empty body.

+

The default HTTP server settings are to bind to all addresses on port 7678. There is a basic API web client accessible on / for manual API access, for example, at http://localhost:7678/.

+

Security

+

API requests are authenticated with a "Network Connection Key". Each installation of PostalPoint maintains a user-configurable list of keys which are allowed to connect to that installation's API server.

+

This means that, in order for a remote client to connect to PostalPoint, it must generate a random alphanumeric ID, which must be saved in the PostalPoint settings.

+

Adding an API endpoint

+

This code adds an endpoint reachable by POST to http://[local hostname]:[port]/testendpointname.

+
global.apis.httpserver.addEndpoint("testendpointname", async function (request) {
+    // `request` is an object parsed from the request body.
+    if (request.abc == "123") {
+        // A non-string `body` is converted to JSON before the HTTP reply is sent.
+        return {body: {json: true, abc: 123}, httpcode: 200, contentType: "application/json"};
+    }
+    // A string `body` is sent to the client as-is using whatever contentType you specify.
+    return {body: "abc", httpcode: 200, contentType: "text/plain"};
+});
+
+

Connecting to a remote endpoint

+

By default, sendRequestToRemote uses the configured "Host PC", but a different hostname/IP may be specified.

+

This code hits the endpoint added above.

+
try {
+    const responseObject = await global.apis.httpserver.sendRequestToRemote({abc: "123"}, "testendpointname");
+    // responseObject will be {json: true, abc: 123}
+    console.log(responseObject);
+} catch (ex) {
+    global.apis.alert(ex.message, "Request Error");
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/HiddenConfigs/index.html b/0.48/Docs/HiddenConfigs/index.html new file mode 100644 index 0000000..3cef370 --- /dev/null +++ b/0.48/Docs/HiddenConfigs/index.html @@ -0,0 +1,1490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Configuration Flags - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Configuration Flags

+

In the Advanced settings of PostalPoint, there is a tool to manually get and set settings by ID.

+

Most PostalPoint settings are available in the Settings screen, and their IDs can be found in the JSON file created by running a database backup.

+

However, there are some special "hidden" setting options that can override default behavior.

+

Warning: PostalPoint is tested with these settings at their default values (usually, unset). There is a small chance of bugs being created by changing a value.

+
    +
  • approved_shipper_receipt_disclaimer: Set non-empty to add a disclaimer on printed receipts: "Note: A non-postal surcharge was added to x items"
  • +
  • disable_hid_feedback: Set non-empty to skip sending scan feedback commands (error beep, etc) to the USB HID POS barcode scanner.
  • +
  • disable_keyboard_shortcuts: Set non-empty to disable the Function key row keyboard navigation shortcuts.
  • +
  • disablesettingsbackup: Set non-empty to skip backing up settings with the database.
  • +
  • dymo_twin_roll_selection: Set label roll selection when using a Dymo twin label printer: 0=auto, 1=left, 2=right, default is 1.
  • +
  • easypost_allow_wallet_billing: Set truthy to allow EasyPost wallet accounts with TOS that restricts resale.
  • +
  • mailboxslipoverride: Change the print size of a mailbox package slip, which is normally 4x6, but defaults to 4x3 when using a QL label printer and DK2243 labels. Set to "4x6" or "4x3" to force a size.
  • +
  • mute_sounds: Set non-empty to disable sound effects.
  • +
  • postalpoint_lan_server_port: Override the port used for the internal web server. This must match on all installations that need to communicate.
  • +
  • postalpoint_lan_server_bind_address: Override the IP address to bind the internal web server to. Default is "0.0.0.0".
  • +
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/Parcel/index.html b/0.48/Docs/Parcel/index.html new file mode 100644 index 0000000..8a56e64 --- /dev/null +++ b/0.48/Docs/Parcel/index.html @@ -0,0 +1,1946 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Parcel/Package Object - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Parcel/Package Object

+

This object is supplied a plugin registered with registerRateEndpoint when PostalPoint requests +shipping rates from the plugin.

+
export class Package {
+    constructor(isPrepaid = false) {
+        this.prepaid = isPrepaid;
+        this.packaging = {
+            type: "Parcel",
+            service: "",
+            carrier: "",
+            length: 999999,
+            width: 999999,
+            height: 999999,
+            weightOz: 999999,
+            nonmachinable: false,
+            additionalHandling: false,
+            internalid: 100,
+            oversizeFlag: false
+        };
+        this.extraServices = {
+            certifiedMail: false,
+            barcode3800: "",
+            registeredMail: false,
+            registeredMailAmount: false, // can be a number in USD
+            returnReceipt: false,
+            returnReceiptElectronic: false,
+            insurance: false, // can be a number in USD
+            signature: false, // can be false, "SIGNATURE", or "SIGNATURE_RESTRICTED"
+            hazmat: false,
+            perishable: false,
+            crematedRemains: false,
+            liveAnimal: false, // BEES, DAY_OLD_POULTRY, ADULT_BIRDS, OTHER_LIVES
+            cod: false, // Collect on Delivery
+            codAmount: false,
+            endorsement: "", // ADDRESS_SERVICE_REQUESTED, CHANGE_SERVICE_REQUESTED, FORWARDING_SERVICE_REQUESTED, LEAVE_IF_NO_RESPONSE, RETURN_SERVICE_REQUESTED
+            carrier_billing_account: {// Bill a third party's account number for the label
+                type: "", // "" (ignores this entire option), "SENDER" (EasyPost default), "THIRD_PARTY", "RECEIVER", "COLLECT"
+                carrier: "", // Carrier ID (should be used to filter rates)
+                account_number: "", // Carrier account number to bill
+                country: "", // Country account is based in
+                postal_code: "" // Postal code of account
+            },
+            dryIce: false,
+            dryIceWeight: 0,
+            dryIceMedical: false
+        };
+        this.description = ""; // Fillable on customs form, or generated before rating call using customs items
+        this.specialRateEligibility = false;
+        this.customs = {
+            contents: "",
+            contentsExplanation: "", // needed if contents is "other", will be copied from this.description if blank for maximum carrier compatibility
+            signature: "",
+            restriction: "",
+            restrictionComments: "", // needed if restriction is "other"
+            nonDelivery: "return", // "return" or "abandon",
+            eel_pfc: "",
+            items: [] // {index: 0, description: "", qty: "", lbs: "", oz: "", value: "", hscode: "", origin: US"}
+        };
+        this.toAddress = new Address();
+        this.returnAddress = new Address();
+        this.originAddress = new Address();
+        this.trackingNumber = "";
+    }
+
+    /**
+     * Format as EasyPost shipment object
+     * @returns {Package.toEasyPostShipment.shipment}
+     */
+    async toEasyPostShipment() {
+        // Not relevant to plugins
+    }
+
+    /**
+     * Format as Endicia shipment object
+     * @returns {Package.toSERAShipment.shipment}
+     */
+    async toSERAShipment() {
+        // Not relevant to plugins
+    }
+
+    /**
+     * Get a human-readable summary of size and options.
+     * Does not include address data.
+     * @returns {String}
+     */
+    async toString() {
+        let summary = [];
+        let packaging = await getPackagingByID(this.packaging.internalid);
+        let weight = ozToLbsOz(this.packaging.weightOz);
+        let weightStr = this.packaging.weightOz >= 16 ? `${weight[0]} lbs ${weight[1]} oz` : `${weight[1]} oz`;
+        if (packaging != false) {
+            if (packaging.irregular) {
+                if (packaging.weight === false) {
+                    summary.push("Parcel");
+                } else {
+                    summary.push(`${weightStr} Parcel`);
+                }
+                summary.push("Additional Handling");
+            } else {
+                if (packaging.weight === false) {
+                    summary.push(packaging.name);
+                } else {
+                    summary.push(`${weightStr} ${packaging.name}`);
+                }
+            }
+        } else {
+            summary.push(weightStr);
+        }
+        if (this.extraServices.hazmat) {
+            summary.push("HAZMAT");
+        }
+        if (this.extraServices.liveAnimal === true) {
+            summary.push("Live Animals");
+        } else if (typeof this.extraServices.liveAnimal == "string") {
+            switch (this.extraServices.liveAnimal) {
+                case "BEES":
+                    summary.push("Live Bees");
+                    break;
+                case "DAY_OLD_POULTRY":
+                    summary.push("Day-old Poultry");
+                    break;
+                case "ADULT_BIRDS":
+                    summary.push("Live Adult Birds");
+                    break;
+                case "OTHER_LIVES":
+                default:
+                    summary.push("Live Animals");
+                    break;
+            }
+        }
+        if (this.extraServices.perishable) {
+            summary.push("Perishable");
+        }
+        if (this.extraServices.crematedRemains) {
+            summary.push("Cremated Remains");
+        }
+        if (this.extraServices.certifiedMail) {
+            summary.push("Certified Mail");
+        } else if (this.extraServices.registeredMail) {
+            summary.push("Registered Mail");
+            summary.push("Registered for $" + (this.extraServices.registeredMailAmount * 1.0).toFixed(2));
+        } else if (this.extraServices.signature == "SIGNATURE") {
+            summary.push("Signature Required");
+        }
+        if (this.extraServices.signature == "ADULT_SIGNATURE") {
+            summary.push("Adult Signature Required");
+        }
+        if (this.extraServices.signature == "SIGNATURE_RESTRICTED") {
+            summary.push("Restricted Delivery");
+        }
+        if (this.extraServices.returnReceiptElectronic) {
+            summary.push("Return Receipt Electronic");
+        }
+        if (this.extraServices.returnReceipt) {
+            summary.push("Return Receipt");
+        }
+        if (this.extraServices.insurance) {
+            summary.push("Insured for $" + (this.extraServices.insurance * 1.0).toFixed(2));
+        }
+        if (this.extraServices.cod) {
+            summary.push("Collect on Delivery: $" + (this.extraServices.codAmount * 1.0).toFixed(2));
+        }
+        if (this.extraServices.dryIce && this.extraServices.dryIceWeight > 0) {
+            summary.push("Dry Ice: " + (this.extraServices.dryIceWeight * 1).toFixed(0) + " oz");
+        }
+        if (this.extraServices.carrier_billing_account?.type) {
+            if (this.extraServices.carrier_billing_account.type != "") {
+                var accountNumber = this.extraServices.carrier_billing_account.account_number;
+                var accountNumberCensored = accountNumber.substring(accountNumber.length - 4).padStart(accountNumber.length, "X");
+                var carrierName = this.extraServices.carrier_billing_account.carrier;
+                switch (this.extraServices.carrier_billing_account.type) {
+                    case "SENDER":
+                        summary.push(`Bill to sender ${carrierName} account #${accountNumberCensored}`);
+                        break;
+                    case "THIRD_PARTY":
+                        summary.push(`Bill to third party ${carrierName} account #${accountNumberCensored}`);
+                        break;
+                    case "RECEIVER":
+                        summary.push(`Bill to receiver ${carrierName} account #${accountNumberCensored}`);
+                        break;
+                    case "COLLECT":
+                        if (accountNumber.length > 0) {
+                            summary.push(`Bill collect ${carrierName} account #${accountNumberCensored}`);
+                        } else {
+                            summary.push(`Bill collect`);
+                        }
+                        break;
+                }
+            }
+        }
+        return summary.join("\n");
+    }
+
+    async needsHAZMATPrompt() {
+        try {
+            let packagingInfo = await getPackagingByID(this.packaging.internalid);
+            if (packagingInfo.hazmat) {
+                return true;
+            }
+            if (this.packaging.weight > 10) {
+                return true;
+            }
+            if (packagingInfo.l >= -1 && Math.max(this.packaging.length, this.packaging.width, this.packaging.height) > 0.5) {
+                return true;
+            }
+            switch (packagingInfo.type) {
+                case "Letter":
+                case "Card":
+                    return false;
+            }
+            return true;
+        } catch (ex) {
+            return true;
+        }
+    }
+
+    get isPrepaid() {
+        return this.prepaid == true;
+    }
+
+    setCustomsInfo(contents, contentsExplanation, signature, restriction, restrictionComments, nonDelivery) {
+        let items = this.customs.items; // Save this and copy it back in so we don't overwrite it
+        this.customs = {
+            contents: contents,
+            contentsExplanation: contentsExplanation, // needed if contents is "other"
+            signature: signature,
+            restriction: restriction,
+            restrictionComments: restrictionComments, // needed if restriction is "other"
+            nonDelivery: nonDelivery, // "return" or "abandon",
+            items: items
+        };
+    }
+
+    /**
+     * Get the customs items, ignoring any that are blank.
+     * @returns {Array}
+     */
+    getCustomsItems() {
+        let items = [];
+        for (let i = 0; i < this.customs.items.length; i++) {
+            let item = this.customs.items[i];
+            if (item.description == "" && (item.qty == "" || item.qty == 0) && (item.weight == "" || item.weight == 0) && (item.value == "" || item.value == 0)) {
+                continue;
+            }
+            items.push(item);
+        }
+        return items;
+    }
+
+    setCustomsItems(items) {
+        this.customs.items = items;
+    }
+
+    getCustoms() {
+        this.customs.items = this.getCustomsItems();
+        return this.customs;
+    }
+
+    /**
+     * Attempt to automatically fix simple issues like overweight letters.
+     * @returns {undefined}
+     */
+    async fixIssues() {
+        if (this.packaging.type == "Letter" && this.packaging.weightOz > 3.5) {
+            if (this.packaging.nonmachinable) {
+                return; // Has to be a parcel, can't fix without dimensions
+            }
+            this.packaging.type = "Flat";
+            this.packaging.internalid = 104;
+        }
+    }
+
+    /**
+     * Do some basic checks to see if this package is even remotely shippable
+     * @param {boolean} kioskMode If true, returned strings are suitable for display in kiosk mode.
+     * @returns {boolean|string} true if okay, human-readable error message and instructions if not okay
+     */
+    async isValid(kioskMode = false) {
+        // Removed from docs for brevity. Just a bunch of if statements to catch problems.
+    }
+
+    /**
+     * Set package characteristics
+     * @param {string} type "Parcel", "Letter", "Flat", "Card"
+     * @param {type} service
+     * @param {type} carrier
+     * @param {type} length
+     * @param {type} width
+     * @param {type} height
+     * @param {type} weightOz
+     * @returns {undefined}
+     */
+    setPackaging(type, service, carrier, length, width, height, weightOz, nonmachinable) {
+        if (typeof nonmachinable == "undefined") {
+            nonmachinable = false;
+        }
+        if (type == "Card") {
+            // Postcards
+            weightOz = 1;
+            this.packaging.internalid = 105;
+        } else if (type == "Flat") {
+            this.packaging.internalid = 104;
+        } else if (type == "Letter") {
+            this.packaging.internalid = 102;
+            if (nonmachinable) {
+                this.packaging.internalid = 103;
+            }
+        }
+        this.packaging.type = type;
+        this.packaging.service = service;
+        this.packaging.carrier = carrier;
+        this.packaging.weightOz = weightOz;
+        this.packaging.nonmachinable = nonmachinable;
+
+        // Enforce Length > Width > Height
+        let size = [length, width, height];
+        size.sort(function (a, b) {
+            return b - a;
+        });
+        this.packaging.length = size[0];
+        this.packaging.width = size[1];
+        this.packaging.height = size[2];
+    }
+
+    /**
+     * Set an extra service
+     * @param {string} id Service ID
+     * @param {boolean} enabled Turn it on or off
+     * @param {string} value Service value, if needed (some are not just a boolean)
+     * @returns {undefined}
+     */
+    setExtraService(id, enabled, value) {
+        if (typeof value != "undefined" && enabled) {
+            this.extraServices[id] = value;
+        } else {
+            this.extraServices[id] = enabled == true;
+        }
+    }
+
+    getExtraServices() {
+        return this.extraServices;
+    }
+
+    /**
+     * Set to "MEDIA_MAIL", "LIBRARY_MAIL", or false
+     * @param {type} rate
+     * @returns {undefined}
+     */
+    set specialRate(rate) {
+        if (rate == "MEDIA") {
+            rate = "MEDIA_MAIL";
+        } else if (rate == "LIBRARY") {
+            rate = "LIBRARY_MAIL";
+        }
+        if (rate != "MEDIA_MAIL" && rate != "LIBRARY_MAIL") {
+            rate = false;
+        }
+        this.specialRateEligibility = rate;
+    }
+
+    get specialRate() {
+        return this.specialRateEligibility;
+    }
+
+    /**
+     * Save an address to this package.
+     * @param {string} type "to", "return", or "origin"
+     * @param {string} name
+     * @param {string} company
+     * @param {string} street1
+     * @param {string} street2
+     * @param {string} city
+     * @param {string} state
+     * @param {string} zip
+     * @param {string} country ISO 2-char country code
+     * @param {string} phone
+     * @param {string} email
+     * @returns {undefined}
+     */
+    setAddress(type, name, company, street1, street2, city, state, zip, country, phone, email) {
+        let address = Address.fromObject({
+            name: name,
+            company: company,
+            street1: street1,
+            street2: street2,
+            city: city,
+            state: state,
+            zip: zip,
+            country: country,
+            phone: phone,
+            email: email
+        });
+        switch (type) {
+            case "to":
+                this.toAddress = address;
+                break;
+            case "return":
+                this.returnAddress = address;
+                break;
+            case "origin":
+                this.originAddress = address;
+                break;
+        }
+    }
+
+    /**
+     * Set an address using an object that matches the internal form (see setAddress())
+     * @param {string} type
+     * @param {object} data
+     * @returns {undefined}
+     */
+    setAddressWhole(type, address) {
+        switch (type) {
+            case "to":
+                this.toAddress = Address.fromObject(address);
+                break;
+            case "return":
+                this.returnAddress = Address.fromObject(address);
+                break;
+            case "origin":
+                this.originAddress = Address.fromObject(address);
+                break;
+        }
+    }
+
+    get tracking() {
+        return this.trackingNumber;
+    }
+
+    set tracking(n) {
+        this.trackingNumber = n;
+    }
+
+    /**
+     * Get the "from" address that will be shown,
+     * using the return address or origin address as needed
+     * @returns {address}
+     */
+    getReturnAddress() {
+        var a = null;
+        if (typeof this.returnAddress == "object") {
+            a = Address.fromObject(this.returnAddress);
+        } else {
+            a = Address.fromObject(this.originAddress);
+        }
+        if (a.country == "") {
+            a.country = defaultCountryCode();
+        }
+        return a;
+    }
+
+    getToAddress() {
+        var a = Address.fromObject(this.toAddress);
+        if (a.country == "") {
+            a.country = defaultCountryCode();
+        }
+        return a;
+    }
+
+    getFromAddress() {
+        var a = null;
+        if (typeof this.originAddress == "object") {
+            a = Address.fromObject(this.originAddress);
+        } else {
+            a = Address.fromObject(this.returnAddress);
+        }
+        if (a.country == "") {
+            a.country = defaultCountryCode();
+        }
+        return a;
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/Receipt/index.html b/0.48/Docs/Receipt/index.html new file mode 100644 index 0000000..d35e2df --- /dev/null +++ b/0.48/Docs/Receipt/index.html @@ -0,0 +1,2030 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Receipt Objects - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Receipt Objects

+

Sample receipt object

+

This is an example of the data global.apis.pos.onReceiptChange +and global.apis.pos.onTransactionFinished send to plugins. +All data for a PostalPoint transaction is available in its receipt object.

+

The money-related properties near the bottom of this sample are generated by PostalPoint +from the items and payments.

+

Notes:

+
    +
  • The due property will be a negative number if change is owed to the customer.
  • +
  • pendingEmailTo is set to a suggested email address for the email receipt, and if the receipt +should actually be emailed, it will be set in emailTo.
  • +
  • uuid is a unique 16-character alphanumeric receipt ID number, which is shown and used in several places. +The uuid is generated using global.apis.util.uuid.short().
  • +
  • customerAccountId is the UUID for the customer's account, or null if there isn't a customer attached.
  • +
  • This example happens to be the object used when test printing a receipt from the PostalPoint +settings menu, so press that button to see what this is rendered into.
  • +
+
{
+    "items": [
+        ReceiptItem.fromJSON({
+            "id": "9100123456789012345678",
+            "label": "Test Package",
+            "text": "Package Details\nTracking # 9100 1234 5678 9012 3456 78\nTo:\nTEST PERSON\nORGANIZATION INC\n123 TEST ROAD\nTESTTOWN TE 99999-0001",
+            "priceEach": 8,
+            "qty": 1,
+            "cost": 0,
+            "retail": 8,
+            "taxRate": 0,
+            "free": false,
+            "barcode": "9100123456789012345678",
+            "certifiedInfo": false,
+            "isMerch": false,
+            "surcharge": false,
+            "toAddress": {
+                "name": "TEST PERSON",
+                "company": "ORGANIZATION INC",
+                "street1": "123 TEST ROAD",
+                "street2": null,
+                "city": "TESTTOWN",
+                "state": "TE",
+                "zip": "99999-0001",
+                "email": null,
+                "phone": null,
+                "country": "US"
+            },
+            "fromAddress": {
+                "name": "TEST PERSON",
+                "company": "ORGANIZATION INC",
+                "street1": "123 TEST ROAD",
+                "street2": null,
+                "city": "TESTTOWN",
+                "state": "TE",
+                "zip": "99999-0001",
+                "email": null,
+                "phone": null,
+                "country": "US"
+            }
+        }),
+        ReceiptItem.fromJSON({
+            "id": "testitem",
+            "label": "Test Item",
+            "text": "",
+            "priceEach": 2,
+            "qty": 1,
+            "cost": 0,
+            "retail": 2,
+            "taxRate": 0.1,
+            "free": false,
+            "barcode": "",
+            "certifiedInfo": false,
+            "isMerch": true,
+            "surcharge": false
+        })
+    ],
+    "payments": [
+        ReceiptPayment.fromJSON({
+            "amount": 10,
+            "type": "cash",
+            "text": "",
+            "id": "testcash"
+        })
+    ],
+    "subtotal": 10,
+    "subtotalFormatted": "$10.00",
+    "tax": 0.2,
+    "taxFormatted": "$0.20",
+    "grandTotal": 10.2,
+    "grandTotalFormatted": "$10.20",
+    "paid": 10.2,
+    "paidFormatted": "$10.20",
+    "due": 0,
+    "dueFormatted": "$0.00",
+    "emailTo": null,
+    "pendingEmailTo": null,
+    "uuid": "1234567890abcdef",
+    "customerAccountId": null,
+    "topTextHTML": "",
+    "bottomTextHTML": ""
+}
+
+

global.apis.pos.ReceiptItem

+
export class ReceiptItem {
+    /**
+     *
+     * @param {string|number} id Unique ID number for this item (UPC code, inventory number, etc). Used to deduplicate line items. Unique items (like shipping labels) should be random or empty.
+     * @param {string} label One-line item information.
+     * @param {string} text Extra item information.
+     * @param {number} priceEach Price per unit
+     * @param {number} quantity Number of units
+     * @param {number} cost Cost per unit. Used for automatic expense tracking.
+     * @param {number} taxrate Examples: 0 (for 0%), 0.05 (for 5%), etc
+     * @param {string} taxableAmount The part of the sale price that's taxable. "" for default (all), "markup" for only taxing profit.
+     * @returns {ReceiptItem}
+     */
+    constructor(id, label, text, priceEach, quantity, cost, taxrate = 0.0, taxableAmount = "") {
+        this.id = id;
+        this.label = label;
+        if (text == null) {
+            this.txt == "";
+        } else {
+            this.txt = text;
+        }
+        this.priceEach = num(priceEach);
+        this.qty = num(quantity);
+        this.cost = num(cost);
+        if (isNaN(taxrate)) {
+            this.taxRate = 0;
+        } else {
+            this.taxRate = num(taxrate);
+        }
+        this.taxableAmount = taxableAmount;
+        this.merch = false;
+        this.merchid = null;
+        this.surcharge = false;
+        this.retail = 0; // For ensuring PostalPoint fee collection on office mode shipments
+        this.mailboxNumber = null;
+        this.mailboxDays = 0;
+        this.mailboxMonths = 0;
+        this.category = ""; // merch category
+        this.electronicReturnReceipt = false;
+        this.isStamp = false;
+        this.extraData = {};
+    }
+
+    static fromJSON(obj) {
+        var item = new ReceiptItem(obj.id, obj.label, obj.text, obj.priceEach, obj.qty, obj.cost, obj.taxRate, obj.taxableAmount ?? "");
+        item.free = obj.free;
+        item.barcode = obj.barcode;
+        item.certifiedInfo = obj.certifiedInfo;
+        item.toAddress = obj.toAddress;
+        item.fromAddress = obj.fromAddress;
+        item.merch = obj.isMerch == true || (typeof obj.merchid == "string" && obj.merchid.length > 0);
+        item.merchid = obj.merchid ?? null;
+        item.mailboxNumber = obj.mailboxNumber ?? null;
+        item.mailboxDays = obj.mailboxDays ?? 0;
+        item.mailboxMonths = obj.mailboxMonths ?? 0;
+        item.surcharge = obj.surcharge;
+        item.retailPrice = obj.retail;
+        item.carrier = obj.carrier ?? null;
+        item.service = obj.service ?? null;
+        item.category = obj.category ?? "";
+        item.electronicReturnReceipt = obj.electronicReturnReceipt ?? false;
+        item.isStamp = obj.isStamp ?? false;
+        item.extraData = obj.extraData ?? {};
+        return item;
+    }
+
+    toJSON() {
+        return {
+            id: this.id,
+            label: this.label,
+            text: this.text,
+            priceEach: num(this.priceEach),
+            qty: num(this.qty),
+            cost: num(this.cost),
+            retail: num(this.retail),
+            taxRate: num(this.taxRate),
+            taxableAmount: this.taxableAmount,
+            taxTotal: this.taxAmount,
+            free: this.free,
+            barcode: this.barcode,
+            certifiedInfo: this.certifiedInfo,
+            isMerch: this.merch,
+            merchid: this.merchid,
+            surcharge: this.surcharge,
+            toAddress: this.toAddress,
+            fromAddress: this.fromAddress,
+            mailboxNumber: this.mailboxNumber,
+            mailboxDays: this.mailboxDays,
+            mailboxMonths: this.mailboxMonths,
+            carrier: this.carrier,
+            service: this.service,
+            category: this.category,
+            electronicReturnReceipt: this.electronicReturnReceipt,
+            isStamp: this.isStamp,
+            extraData: this.extraData
+        };
+    }
+
+    setExtra(key, val) {
+        this.extraData[key] = val;
+    }
+
+    getExtra(key) {
+        if (typeof this.extraData[key] != "undefined") {
+            return this.extraData[key];
+        }
+        return null;
+    }
+
+    get text() {
+        if (typeof this.txt == "string") {
+            return this.txt;
+        }
+        return "";
+    }
+
+    set text(t) {
+        if (typeof t == "string") {
+            this.txt = t;
+        } else {
+            this.txt = "";
+        }
+    }
+
+    get certifiedInfo() {
+        if (typeof this.certified == "undefined") {
+            return false;
+        }
+        return this.certified;
+    }
+
+    set certifiedInfo(info) {
+        this.certified = info;
+    }
+
+    setCertifiedInfo(tracking, certfee, extrafees, postage, date, location, toaddress) {
+        this.certified = {
+            tracking: tracking,
+            certifiedFee: num(certfee),
+            extraFees: extrafees,
+            postage: num(postage),
+            date: date,
+            location: location,
+            to: toaddress
+        };
+    }
+
+    setQuantity(q) {
+        this.qty = num(q);
+    }
+
+    get free() {
+        return this.isFree == true;
+    }
+
+    set free(free) {
+        this.isFree = free == true;
+    }
+
+    get barcode() {
+        if (typeof this.barcodeData != "string") {
+            return "";
+        }
+        return this.barcodeData;
+    }
+
+    set barcode(data) {
+        this.barcodeData = data;
+    }
+
+    get linePrice() {
+        return round(m(this.priceEach, this.qty), 2);
+    }
+
+    get priceEachFormatted() {
+        return getCurrencySymbol() + round(num(this.priceEach), 2).toFixed(2);
+    }
+
+    get linePriceFormatted() {
+        return getCurrencySymbol() + round(num(this.linePrice), 2).toFixed(2);
+    }
+
+    get texthtml() {
+        if (typeof this.text != "string") {
+            return "";
+        }
+        var lines = this.text.split("\n");
+        for (var i = 0; i < lines.length; i++) {
+            if (lines[i].startsWith("Tracking # ")) {
+                // Allow copying tracking number
+                lines[i] = "Tracking # <span class=\"usall\">" + lines[i].replace("Tracking # ", "") + "</span>";
+            }
+        }
+        return lines.join("<br />");
+    }
+
+    get taxAmount() {
+        if (this.taxableAmount == "markup") {
+            var lineCost = m(this.cost, this.qty);
+            var margin = s(this.linePrice, lineCost);
+            if (margin <= 0) {
+                return 0;
+            }
+            return round(m(margin, this.taxRate), 2);
+        } else {
+            return round(m(this.linePrice, this.taxRate), 2);
+        }
+    }
+
+    get retailPrice() {
+        if (typeof this.retail == "number") {
+            return this.retail;
+        }
+        return this.priceEach * this.qty;
+    }
+
+    set retailPrice(price) {
+        this.retail = num(price);
+    }
+
+}
+
+

global.apis.pos.ReceiptPayment

+
export class ReceiptPayment {
+
+    /**
+     *
+     * @param {number} amount amount paid
+     * @param {string} type payment type
+     * @param {string} text extra data (credit card info, etc)
+     * @returns {ReceiptPayment}
+     */
+    constructor(amount, type, text) {
+        this.id = (Math.random() * 100000000) + "_" + type + "_" + amount;
+        this.text = (typeof text != "string" ? "" : text);
+        this.type = type;
+        this.amount = amount;
+        this.extraData = {};
+    }
+
+    static fromJSON(obj) {
+        var item = new ReceiptPayment(obj.amount, obj.type, obj.text);
+        item.id = obj.id;
+        item.extraData = obj.extraData ?? {};
+        return item;
+    }
+
+    toJSON() {
+        return {
+            amount: round(this.amount, 2),
+            type: this.type,
+            text: this.text,
+            id: this.id,
+            extraData: this.extraData ?? {}
+        };
+    }
+
+    setExtra(key, val) {
+        this.extraData[key] = val;
+    }
+
+    getExtra(key) {
+        if (typeof this.extraData[key] != "undefined") {
+            return this.extraData[key];
+        }
+        return null;
+    }
+
+    get texthtml() {
+        if (typeof this.text != "string") {
+            return "";
+        }
+        return this.text.replaceAll("\n", "<br />");
+    }
+
+    get amountFormatted() {
+        return getCurrencySymbol() + this.amount.toFixed(2);
+    }
+
+    get label() {
+        if (typeof this.type != "string") {
+            return "Payment";
+        }
+        switch (this.type) {
+            case "cash":
+                return "Cash";
+            case "check":
+                return "Check";
+            case "card":
+                return "Card";
+            case "card_manual":
+                return "Card";
+            case "account":
+                return "Account";
+            case "free":
+                return "Free";
+            case "discount":
+                return "Discount";
+            case "crypto":
+                return "Cryptocurrency";
+            case "ach":
+                return "ACH Debit";
+            case "rounding":
+                return "Cash Rounding"; // Used in penniless countries to balance a cash-only transaction
+            default:
+                return this.type;
+        }
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/ReceiptPrinter/index.html b/0.48/Docs/ReceiptPrinter/index.html new file mode 100644 index 0000000..50321eb --- /dev/null +++ b/0.48/Docs/ReceiptPrinter/index.html @@ -0,0 +1,1615 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Receipt Printer driver functions - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Receipt Printer driver functions

+

PostalPoint abstracts the receipt printer hardware commands, so the same functions are available on +all brands and languages of receipt printer, and printer media size and settings are also handled for you.

+

The drivers operate in line mode, where each successive command appends content to the bottom of the page.

+

These functions are available on the object supplied by the promise returned from +global.apis.print.getReceiptPrinter().

+

Functions

+
//
+// Add one or more lines of text, with automatic wrapping.
+// If both firsttext and secondtext are provided, two columns of text are generated,
+// with the first left-justified and the second right-justified.
+// `firstjustify` can be "L" (left), "C" (center), or "R" (right).
+// Not all printers support all the formatting options, and may render them in different ways,
+// but the formatting intent is made clear regardless.
+addFieldBlock(firsttext, firstjustify, secondtext = "", secondjustify = "R", bold = false, doubleheight = false, underline = false);
+
+// Add a blank line to the label.
+newLine();
+
+// Draw a horizontal line across the page.
+drawLine();
+
+// Render a Code 128 barcode, centered horizontally, with a human-readable label beneath.
+// Important: this function is sometimes asynchronous depending on the printer driver.
+barcode128(content);
+
+// Print an image.  Width is in pixels.
+// pixelByteArray is a Uint8Array where each bit is a pixel (1=black, 0=white),
+// starting at the top-left of the image and going across and then down. Use `imageToBitmap` to
+// obtain this data from a Jimp image.
+// Use "L" as the position to print on the next line, centered horizontally.
+// Some printers also support position = "C", which will
+// ignore other commands and print the image centered on the label,
+// but if you're doing that, just use `global.apis.print.printLabelImage()` instead.
+drawImage(width, position, pixelByteArray);
+
+// If supported by the printer, opens an attached cash drawer.  Command is ignored if unavailable.
+openCashDrawer();
+
+// The last command to run, when ready to print. Returns the raw data to send to the printer.
+// Important: this function is sometimes asynchronous depending on the printer driver.
+getData();
+
+

Example

+
var printer = await global.apis.print.getReceiptPrinter();
+
+printer.addFieldBlock("Hello Bold World!", "C", "", "", true);
+printer.drawLine();
+await printer.barcode128("1234567890");
+printer.newLine();
+
+await global.apis.printer.printReceiptData(await printer.getData());
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Docs/TrackingBarcode/index.html b/0.48/Docs/TrackingBarcode/index.html new file mode 100644 index 0000000..49fed55 --- /dev/null +++ b/0.48/Docs/TrackingBarcode/index.html @@ -0,0 +1,1636 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + TrackingBarcode class - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

TrackingBarcode class

+

For your reference, here is the source code of the TrackingBarcode class, used to represent a prepaid drop-off. +This class is provided to plugins as global.apis.barcode.TrackingBarcode.

+
export class TrackingBarcode {
+    /**
+     * Create a tracking barcode object.
+     * @param {string} code Tracking number.
+     * @returns {TrackingBarcode}
+     */
+    constructor(code) {
+        // All data are optional except for the tracking number. Missing data is gracefully handled by the PostalPoint UI.
+        this.cleanCode = code;
+        // Original barcode data this was created from
+        this.barcode = code;
+        // Destination ZIP Code, for domestic shipments. The city and state are automatically added.  If toAddress is specified, toZip is ignored in favor of it.
+        this.toZip = "";
+        // Two-letter destination country code.  If not "US", toZip is ignored, and the full country name is appended to the displayed address information.
+        this.toCountry = defaultCountryCode();
+        // If toAddress is set, it will be used instead of the toZip when displaying the destination.
+        // If both toZip and toAddress are empty strings, no destination will be displayed.
+        this.toAddress = "";
+        // If message is not empty, the barcode will NOT be added and the message will be displayed to the user.
+        this.message = "";
+        // If warning is not empty, the barcode WILL be added and a message will be displayed to the user.
+        this.warning = "";
+        // Shipping carrier name.
+        this.carrier = "";
+        // Shipping service/mail class full name and description. Example: "Priority Mail Adult Signature Required".
+        this.serviceName = "";
+        // Shipping service/mail class name, without extra info such as "signature required".
+        // Example: "Priority Mail"
+        this.serviceShort = "";
+        // If set to false, the barcode will be rejected with a suitable message when PostalPoint is running in self-serve kiosk mode.
+        this.dropoff = true;
+        // If false, app may prompt user to specify the shipping carrier
+        this.confidentCarrier = true;
+        // Extra description strings, like "Signature Required"
+        this.extraInfo = [];
+    }
+
+    /**
+     * Set the tracking number
+     * @param {string} str
+     * @returns {undefined}
+     */
+    set tracking(str) {
+        this.cleanCode = str;
+    }
+
+    /**
+     * Set the service/mail class description string.
+     * @param {string} str
+     * @returns {undefined}
+     */
+    set service(str) {
+        this.serviceShort = str;
+        this.serviceName = str;
+    }
+
+    /**
+     * Get the tracking number.
+     * @returns {String}
+     */
+    get tracking() {
+        return this.cleanCode;
+    }
+
+    /**
+     * Get the destination ZIP code.
+     * @returns {String}
+     */
+    get zip() {
+        return this.toZip;
+    }
+
+    /**
+     * Get the service/mail class description.
+     * @returns {String}
+     */
+    get service() {
+        if (this.serviceShort != "") {
+            return this.serviceShort;
+        } else if (this.serviceName != "") {
+            return this.serviceName;
+        }
+        return "";
+    }
+
+    /**
+     * Get the carrier and service info.
+     * @returns {String}
+     */
+    get serviceString() {
+        var str = [];
+        if (this.carrier != "") {
+            str.push(this.carrier);
+        }
+        if (this.serviceShort != "") {
+            str.push(this.serviceShort);
+        } else if (this.serviceName != "") {
+            str.push(this.serviceName);
+        }
+        return str.join(" ");
+    }
+
+    /**
+     * Get the destination information as a human-presentable multiline string.
+     * @returns {String}
+     */
+    get destString() {
+        var addressLines = [];
+        if (this.toAddress != "") {
+            addressLines.push(...this.toAddress.split("\n"));
+        }
+        if (defaultCountryCode() == this.toCountry.toUpperCase() && this.toCountry.toUpperCase() == "US" && this.toZip != "" && this.toAddress == "") {
+            // Domestic shipment within USA, look up ZIP code
+            var zipdata = getZIP(this.toZip);
+            if (zipdata != false) {
+                addressLines.push(`${zipdata.city} ${zipdata.state} ${this.toZip}`);
+            } else {
+                addressLines.push(`${this.toZip}`);
+            }
+        } else if (defaultCountryCode() == this.toCountry.toUpperCase()) {
+            // Domestic shipment, outside USA, add postal code line if we have one
+            if (this.toZip != "" && this.toAddress.includes(this.toZip) != true) {
+                addressLines.push(`${this.toZip}`);
+            }
+        } else {
+            // International shipment, add country name
+            addressLines.push(getCountryNameForISO(this.toCountry));
+        }
+        return addressLines.join("\n");
+    }
+
+    /**
+     * Get the package information in a format suitable for display on a receipt.
+     * @param {boolean} includeTrackingNumber If false, the tracking number will be suppressed.
+     * @returns {String}
+     */
+    toString(includeTrackingNumber = true) {
+        var lines = [];
+        if (includeTrackingNumber && this.cleanCode) {
+            lines.push(this.cleanCode);
+        }
+        var serv = this.serviceString;
+        if (serv != "") {
+            lines.push(serv);
+        }
+        var dest = this.destString;
+        if (dest != "") {
+            var destlines = dest.split("\n");
+            destlines[0] = "To " + destlines[0];
+            lines.push(...destlines);
+        }
+
+        if (typeof this.extraInfo == "object" && this.extraInfo.length > 0) {
+            lines.push(...this.extraInfo);
+        }
+
+        return lines.join("\n");
+    }
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Examples/01Minimal/index.html b/0.48/Examples/01Minimal/index.html new file mode 100644 index 0000000..e6fd84b --- /dev/null +++ b/0.48/Examples/01Minimal/index.html @@ -0,0 +1,1479 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Minimal Plugin - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Minimal Plugin

+

This is the smallest possible valid plugin.

+
plugin-name/plugin.js
exports.init = function () {
+    global.apis.alert("This message appears when PostalPoint launches.", "Hello!");
+};
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Examples/02Basic/index.html b/0.48/Examples/02Basic/index.html new file mode 100644 index 0000000..e681759 --- /dev/null +++ b/0.48/Examples/02Basic/index.html @@ -0,0 +1,1600 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Basic Plugin - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Basic Plugin

+

This sample plugin showcases some of the features many plugins will want to use.

+

Download JavaScript

+
plugin.js
// Sample plugin to demonstrate plugin capabilities and structure.
+
+async function getPage() {
+    // A Framework7 component page
+    return global.apis.getPluginFolder("basic-demo") + "/uipluginpage.f7";
+}
+
+// This is run when PostalPoint loads the plugin at launch.
+// Use it to register for things you want to do, like adding a page, hooking into payments or shipping rates, etc.
+exports.init = function () {
+    console.log(global.apis.settings.get("basic-demo_secretcode"));
+    global.apis.ui.addToolsPage(getPage, "Sample Page Title", "sampletool1234", "A sample plugin page", "Sample", "fa-solid fa-circle");
+};
+
+// This defines a settings UI to display for the plugin.
+// If exports.config is a function instead of an array, it will be executed when opening the settings
+// and must return an array like the one below.
+// If exports.config is undefined, a settings menu will not be provided to the user.
+exports.config = [
+    {
+        type: "button",
+        label: "Test Button",
+        text: "Some text about the button",
+        onClick: function () {
+            global.apis.alert("Button pressed");
+        }
+    },
+    {
+        type: "text",
+        key: "app.postalpoint.basic-demo_somestring", // Try to make sure this is unique by using a prefix,
+        // settings storage is global so there could be conflicts if you aren't careful
+        defaultVal: "",
+        label: "Type a string",
+        placeholder: "",
+        text: "Description text next to the input box",
+        sync: false // Add sync: false to prevent automatically syncing this setting between
+                    // PostalPoint installations (i.e. it's a device-specific setting, like a pairing code)
+                    // If it's not present, or is any truthy value, it could be synced between PCs
+    },
+    {
+        type: "password",
+        key: "app.postalpoint.basic-demo_secretcode",
+        defaultVal: "",
+        label: "Secret Code",
+        placeholder: "",
+        text: "Don't tell anyone this secret code:"
+    },
+    {
+        type: "textarea",
+        key: "app.postalpoint.basic-demo_sometext",
+        defaultVal: "",
+        label: "Text Box",
+        placeholder: "...",
+        text: "You can type a few lines of text here."
+    },
+    {
+        type: "select",
+        key: "app.postalpoint.basic-demo_dropdownbox",
+        defaultVal: "",
+        label: "Choose an option",
+        placeholder: "",
+        text: "",
+        options: [["key1", "Value 1"], ["key2", "Value 2"]]
+    }
+];
+
+

Download HTML

+
uipluginpage.f7
<template>
+    <div class="page">
+        <div class="navbar">
+            <div class="navbar-bg"></div>
+            <div class="navbar-inner">
+                <div class="title">${title}</div>
+            </div>
+        </div>
+        <div class="page-content">
+            <a class="button" @click=${openAlert}>Open Alert</a>
+            <a class="button" @click=${printSomething}>Print Something</a>
+            <div class="list simple-list">
+                <ul>
+                    ${names.map((name) => $h`
+                    <li>${name}</li>
+                    `)}
+                </ul>
+            </div>
+        </div>
+    </div>
+</template>
+<!-- component styles -->
+<style>
+    .red-link {
+        color: red;
+    }
+</style>
+<!-- rest of component logic -->
+<script>
+    // script must return/export component function
+    export default (props, { $f7, $on }) => {
+        const title = 'Component Page';
+        const names = ['John', 'Vladimir', 'Timo'];
+
+        const openAlert = () => {
+            $f7.dialog.alert('Hello world!\nblah blah blah');
+        }
+
+        async function printSomething() {
+            // Print some text to the receipt printer
+            var printer = await global.apis.print.getReceiptPrinter();
+            printer.addFieldBlock('Hello world!\nblah blah blah\n\n', "C");
+            global.apis.print.printReceiptData(await printer.getData());
+        }
+
+        $on('pageInit', () => {
+            // do something on page init
+        });
+        $on('pageAfterOut', () => {
+            // page has left the view
+        });
+
+        // component function must return render function
+        return $render;
+    }
+</script>
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Examples/03Shipping/index.html b/0.48/Examples/03Shipping/index.html new file mode 100644 index 0000000..c2f804a --- /dev/null +++ b/0.48/Examples/03Shipping/index.html @@ -0,0 +1,1559 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Shipping Plugin - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Shipping Plugin

+

This sample plugin demonstrates how to add support for a custom shipping carrier.

+

Download JavaScript

+
plugin.js
// This is a sample PostalPoint plugin for adding support for a shipping carrier.
+
+var rateCache = [];
+var parcelCache = {};
+
+exports.init = function () {
+    // Add support for shipping rating and label purchasing
+    global.apis.shipping.registerRateEndpoint(getRates, purchase, "uniqueprefixhere_");
+
+    // Add support for prepaid drop-offs
+    global.apis.barcode.onPrepaidScan(function (barcode) {
+        if (barcode.startsWith("mycarrierbarcode")) { // Replace this with your checks for barcode validity
+            var data = new global.apis.barcode.TrackingBarcode(barcode);
+            data.carrier = "Carrier Name";
+            data.service = "Service Name";
+            return data;
+        }
+        return false;
+    });
+}
+
+async function purchase(rateid) {
+    for (var i = 0; i < rateCache.length; i++) {
+        if (rateCache[i].rateid == rateid) {
+            var rate = rateCache[i];
+            //
+            // Fetch label and tracking and such
+            //
+            var label;
+            var tracking = "123456";
+            var toAddressLines = parcelCache.toAddress.toStringArray();
+
+            // Create receipt item
+            var receiptitem = new global.apis.pos.ReceiptItem(`uniqueprefixhere_${tracking}`,
+                    `${rate.carrierName} ${rate.serviceName}`,
+                    `Tracking # ${global.apis.util.string.chunk(tracking, 3).join(" ")}\nTo:\n${toAddressLines.join("\n")}`,
+                    rate.retail_rate, 1, rate.cost_rate, 0
+                    );
+            receiptitem.barcode = tracking;
+            receiptitem.carrier = "Carrier Name";
+            receiptitem.service = "Service Name";
+
+            return {
+                label: label,
+                labeltype: "PNG",
+                receiptItem: receiptitem,
+                tracking: tracking,
+                cost: rate.cost_rate,
+                price: rate.retail_rate,
+                carrier: rate.carrierName,
+                service: rate.serviceName,
+                delivery_days: rate.delivery_days,
+                delivery_date: rate.delivery_date,
+                to: toAddressLines
+            };
+        }
+    }
+}
+
+async function getRates(parcel) {
+    // parcel is an object as shown in docs/Parcel.md
+    var rates = [];
+    rates.push({
+        rateid: "uniqueprefixhere_" + global.apis.util.uuid.v4(),
+        carrier: "Carrier",
+        carrierName: "Carrier Name",
+        service: "CARRIER_SERVICE_ID",
+        cost_rate: 10,
+        retail_rate: 15,
+        delivery_days: 3,
+        delivery_date: null,
+        guaranteed: true,
+        serviceName: "Service Name",
+        color: "green" // Rate card color
+    });
+
+    // Save details for later use if purchased
+    rateCache = rates;
+    parcelCache = parcel;
+
+    return rates;
+}
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Examples/04CardProcessor/index.html b/0.48/Examples/04CardProcessor/index.html new file mode 100644 index 0000000..f5dc310 --- /dev/null +++ b/0.48/Examples/04CardProcessor/index.html @@ -0,0 +1,1723 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Card Payments - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Card Payments

+

This plugin template shows how to implement a card payment processor, +allowing PostalPoint to interface with your card reader/terminal hardware, +as well as saving, retrieving, and charging cards on file.

+

Download JavaScript

+
plugin-name/plugin.js
// This is a sample PostalPoint plugin that adds a card payment processor.
+
+exports.init = function () {
+    global.apis.pos.registerCardProcessor({
+        name: "Demo Card Processor",
+        init: async function () {
+            // This function runs once after starting PostalPoint
+            // and before any other card processor functions are called.
+        },
+        checkout: async function({amount, capture = true}) {
+            // amount is an integer number of pennies.
+
+            // If an error is encountered during processing,
+            //    display an error message in a dialog and return boolean false.
+            //    If this function returns anything except false or undefined, and doesn't throw an error,
+            //    it is assumed the payment was successful.
+            try {
+                if (capture) {
+                    // authorize, capture, add a ReceiptPayment to the receipt, and return boolean true.
+                    global.apis.pos.addOnscreenPaymentLog("Getting card payment..."); // Add a line to the onscreen card processing status log
+                    await global.apis.util.delay(1000); // Replace this with something useful!
+                    global.apis.pos.addReceiptPayment(
+                        new global.apis.pos.ReceiptPayment(
+                            (amount / 100).toFixed(2) * 1,
+                            "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free.  Other types will be displayed as-is to the user and on the receipt.
+                            "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt
+                        )
+                    );
+                    global.apis.pos.addOnscreenPaymentLog("Payment successful!");
+                    return true;
+                } else {
+                    // only authorize the payment, don't actually capture/charge the payment method,
+                    // and return whatever transaction data that will be passed to finishPayment to capture the payment.
+                    await global.apis.util.delay(1000); // Replace this with something useful!
+                    return {amount: amount};
+                }
+            } catch (ex) {
+                global.apis.pos.addOnscreenPaymentLog(`Error: ${ex.message} [okay to put extra details here for troubleshooting or tech support, it's visible to the cashier]`);
+                if (global.apis.kiosk.isKiosk()) {
+                    // This message will be shown to an end-user/customer, not a cashier/employee
+                    global.apis.alert("Your card was declined.", "Card Error");
+                } else {
+                    global.apis.alert("The customer's card was declined.", "Card Error");
+                }
+                return false;
+            }
+        },
+        cancelCheckout: function () {
+            // The user requested to cancel the payment.
+            // Reset the terminal to its resting state, clear its screen, etc.
+        },
+        finishPayment: async function ({checkoutResponse}) {
+            // Finish a payment that was authorized but not captured because checkout was called with capture = false
+            // If payment was already captured and added to the receipt for some reason, just return true.
+            await global.apis.util.delay(1000); // Replace this with something useful!
+            global.apis.pos.addReceiptPayment(
+                new global.apis.pos.ReceiptPayment(
+                    (checkoutResponse.amount / 100).toFixed(2) * 1,
+                    "card", // Payment type.
+                    "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt
+                )
+            );
+            return true;
+        },
+        updateCartDisplay: function (receipt) {
+            // Show transaction data on the card reader display.
+            // This function will be called when the cart or total changes.
+            console.log(receipt);
+            // Sample structure of the receipt variable:
+            receipt = {
+                "items": [
+                    {
+                        "id": "testitem",
+                        "label": "Test Item",
+                        "text": "",
+                        "priceEach": 2,
+                        "qty": 1,
+                        "cost": 0,
+                        "retail": 2,
+                        "taxRate": 0.1,
+                        "free": false,
+                        "barcode": "",
+                        "certifiedInfo": false,
+                        "isMerch": true,
+                        "surcharge": false
+                    },
+                    {
+                        "id": "9100123456789012345678",
+                        "label": "Test Package",
+                        "text": "Package Details\nTracking # 9100 1234 5678 9012 3456 78\nTo:\nTEST PERSON\nORGANIZATION INC\n123 TEST ROAD\nTESTTOWN TE 99999-0001",
+                        "priceEach": 8,
+                        "qty": 1,
+                        "cost": 0,
+                        "retail": 8,
+                        "taxRate": 0,
+                        "free": false,
+                        "barcode": "9100123456789012345678",
+                        "certifiedInfo": false,
+                        "isMerch": false,
+                        "surcharge": false,
+                        "toAddress": {
+                            "name": "TEST PERSON",
+                            "company": "ORGANIZATION INC",
+                            "street1": "123 TEST ROAD",
+                            "street2": null,
+                            "city": "TESTTOWN",
+                            "state": "TE",
+                            "zip": "99999-0001",
+                            "email": null,
+                            "phone": null,
+                            "country": "US"
+                        },
+                        "fromAddress": {
+                            "name": "TEST PERSON",
+                            "company": "ORGANIZATION INC",
+                            "street1": "123 TEST ROAD",
+                            "street2": null,
+                            "city": "TESTTOWN",
+                            "state": "TE",
+                            "zip": "99999-0001",
+                            "email": null,
+                            "phone": null,
+                            "country": "US"
+                        }
+                    }
+                ],
+                "payments": [
+                    {
+                        "amount": 10,
+                        "amountFormatted": "$10.00",
+                        "type": "cash",
+                        "label": "Cash",
+                        "text": "",
+                        "texthtml": "",
+                        "id": "12345678_cash_10"
+                    },
+                    {
+                        "amount": 12.34,
+                        "amountFormatted": "$12.34",
+                        "type": "card",
+                        "label": "Card",
+                        "text": "Card Details here\n1234abcd",
+                        "texthtml": "Card Details here<br />1234abcd",
+                        "id": "87654321_card_12.34"
+                    }
+                ],
+                "subtotal": 10,
+                "subtotalFormatted": "$10.00",
+                "tax": 0.2,
+                "taxFormatted": "$0.20",
+                "grandTotal": 10.2,
+                "grandTotalFormatted": "$10.20",
+                "paid": 22.34,
+                "paidFormatted": "$22.34",
+                "due": -12.14, // If negative, is the amount of change owed to the customer instead
+                "dueFormatted": "$12.14"
+            };
+        },
+        checkoutSavedMethod: async function ({customerID, paymentMethodID, amount}) {
+            // Same as checkout() except using a payment method already on file.
+            // customerID and paymentMethodID are provided by getSavedPaymentMethods below.
+            await global.apis.util.delay(1000); // Replace this with something useful!
+            var error = false;
+            if (error) {
+                // If you can't charge the payment method, throw an Error with a string to display to the user.
+                throw new Error("The saved card didn't work.");
+            }
+            global.apis.pos.addReceiptPayment(
+                new global.apis.pos.ReceiptPayment(
+                    (amount / 100).toFixed(2) * 1,
+                    "card", // Payment type.
+                    "Card on File\nx1234" // Additional text for receipt
+                )
+            );
+            // Must return true upon success.
+            // If the payment is not successful, and you didn't throw an Error to show the user,
+            // then `return false` instead and it'll appear that the user's action to start the payment did nothing.
+            return true;
+        },
+        saveCardForOfflineUse: async function ({statusCallback, customerUUID, name, company, street1, street2, city, state, zip, country, email, phone}) {
+            // Use the card reader to capture an in-person card and save it for offline use.
+            // Provided details are the customer's info, which might be empty strings except for the customerUUID.
+            // Saved card details must be tied to the customerUUID, as that's how saved cards are looked up.
+
+            // statusCallback(string, boolean) updates the progress message on the cashier's screen.
+            // If the boolean is true, the progress message is replaced with a confirmation message.
+            statusCallback("Insert the card into the reader.", false);
+
+            await global.apis.util.delay(1000); // Wait for the customer to insert their card,
+            //then save it for later offline billing
+
+            statusCallback("Saving card details...", false);
+
+            await global.apis.util.delay(1000);
+
+            statusCallback("Card saved!", true);
+
+            return true; // Card saved to customer
+            // If an error occurred, you can throw it and the error message will be displayed to the cashier.
+            // Alternatively, return boolean false and display the error yourself with global.apis.alert(message, title) or something.
+        },
+        cancelSaveCardForOfflineUse: function () {
+            // Cancel the process running in saveCardForOfflineUse() at the user/cashier's request.
+        },
+        getSavedPaymentMethods: async function ({customerUUID}) {
+            // Return all saved payment methods tied to the provided customer UUID.
+            var methods = [];
+            methods.push({
+                customer: "<internal string referencing the customer>", // Passed to checkoutSavedMethod as customerID
+                customer_uuid: customerUUID,
+                id: "<card/payment method identifier>", // Passed to checkoutSavedMethod as paymentMethodID
+                type: "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free.
+                label: "Visa debit x1234 (exp. 12/29)", // Label for payment method
+                label_short: "Visa debit x1234" // Abbreviated label for payment method
+            });
+            return methods;
+        },
+        deleteSavedPaymentMethod: async function ({customerUUID, customerID, paymentMethodID}) {
+            // Delete the payment method identified by paymentMethodID and tied to the PostalPoint customerUUID and the card processor customerID.
+            // If unable to delete, throw an error and the error message will be displayed to the cashier.
+            await global.apis.util.delay(1000);
+        }
+    });
+}
+
+// Plugin settings to display.
+exports.config = [
+    {
+        type: "password",
+        key: "democardprocessor_apikey",
+        defaultVal: "",
+        label: "API Key",
+        placeholder: "",
+        text: "API Key"
+    },
+    {
+        type: "button",
+        label: "Test Button",
+        text: "Some text about the button",
+        onClick: function () {
+            global.apis.ui.openSystemWebBrowser("https://postalpoint.app");
+        }
+    }
+];
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Examples/05CryptoProcessor/index.html b/0.48/Examples/05CryptoProcessor/index.html new file mode 100644 index 0000000..97a2553 --- /dev/null +++ b/0.48/Examples/05CryptoProcessor/index.html @@ -0,0 +1,1550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Cryptocurrency Payments - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Cryptocurrency Payments

+

This plugin template shows how to implement a cryptocurrency payment processor, +using the customer-facing display to show a payment QR code webpage.

+

Download JavaScript

+
plugin-name/plugin.js
// This is a sample PostalPoint plugin that adds a card payment processor.
+
+exports.init = function () {
+    global.apis.pos.registerCryptoProcessor({
+        name: "Demo Crypto",
+        init: async function () {
+            // This is run after PostalPoint starts, and before any other crypto functions are called.
+        },
+        checkout: async function ( {amount}) {
+            // Run the checkout process.
+            // amount is the amount of USD to collect, in pennies.
+
+            // If an error is encountered during processing,
+            //    display an error message in a dialog and return boolean false.
+            //    If this function returns anything except false or undefined, and doesn't throw an error,
+            //    it is assumed the payment was successful.
+
+            // Adds a line of text visible to the cashier
+            global.apis.pos.addOnscreenPaymentLog("Getting crypto payment...");
+
+            // Display a web page (i.e. with a payment QR code) to the customer on the customer-facing display.
+            global.apis.ui.setCustomerScreen("<html></html>", "html");
+            global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw");
+
+            // Poll the status of the crypto transaction
+            var paymentComplete = false;
+            do {
+                await global.apis.util.delay(1000);
+                paymentComplete = true;
+            } while (paymentComplete != true);
+
+            global.apis.pos.addReceiptPayment(
+                    new global.apis.pos.ReceiptPayment(
+                            (amount / 100).toFixed(2) * 1,
+                            "crypto", // Payment type.
+                            "Bitcoin\n0.00001234 BTC" // Additional text for receipt
+                            )
+                    );
+            global.apis.pos.addOnscreenPaymentLog("Payment successful!");
+            global.apis.ui.clearCustomerScreen();
+        },
+        cancelCheckout: function () {
+            // The user requested to cancel the payment.
+            // Reset things accordingly.
+            global.apis.ui.clearCustomerScreen();
+        },
+        isConfigured: function () {
+            // Is this plugin properly setup and able to process payments?  If not, return false.
+            return true;
+        }
+    });
+}
+
+// Plugin settings to display.
+exports.config = [
+    {
+        type: "password",
+        key: "democryproprocessor_apikey",
+        defaultVal: "",
+        label: "API Key",
+        placeholder: "",
+        text: "API Key"
+    },
+    {
+        type: "button",
+        label: "Test Button",
+        text: "Some text about the button",
+        onClick: function () {
+            global.apis.ui.openSystemWebBrowser("https://postalpoint.app");
+        }
+    }
+];
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Examples/basic-demo/plugin.js b/0.48/Examples/basic-demo/plugin.js new file mode 100644 index 0000000..2c9cce9 --- /dev/null +++ b/0.48/Examples/basic-demo/plugin.js @@ -0,0 +1,65 @@ +// Sample plugin to demonstrate plugin capabilities and structure. + +async function getPage() { + // A Framework7 component page + return global.apis.getPluginFolder("basic-demo") + "/uipluginpage.f7"; +} + +// This is run when PostalPoint loads the plugin at launch. +// Use it to register for things you want to do, like adding a page, hooking into payments or shipping rates, etc. +exports.init = function () { + console.log(global.apis.settings.get("basic-demo_secretcode")); + global.apis.ui.addToolsPage(getPage, "Sample Page Title", "sampletool1234", "A sample plugin page", "Sample", "fa-solid fa-circle"); +}; + +// This defines a settings UI to display for the plugin. +// If exports.config is a function instead of an array, it will be executed when opening the settings +// and must return an array like the one below. +// If exports.config is undefined, a settings menu will not be provided to the user. +exports.config = [ + { + type: "button", + label: "Test Button", + text: "Some text about the button", + onClick: function () { + global.apis.alert("Button pressed"); + } + }, + { + type: "text", + key: "app.postalpoint.basic-demo_somestring", // Try to make sure this is unique by using a prefix, + // settings storage is global so there could be conflicts if you aren't careful + defaultVal: "", + label: "Type a string", + placeholder: "", + text: "Description text next to the input box", + sync: false // Add sync: false to prevent automatically syncing this setting between + // PostalPoint installations (i.e. it's a device-specific setting, like a pairing code) + // If it's not present, or is any truthy value, it could be synced between PCs + }, + { + type: "password", + key: "app.postalpoint.basic-demo_secretcode", + defaultVal: "", + label: "Secret Code", + placeholder: "", + text: "Don't tell anyone this secret code:" + }, + { + type: "textarea", + key: "app.postalpoint.basic-demo_sometext", + defaultVal: "", + label: "Text Box", + placeholder: "...", + text: "You can type a few lines of text here." + }, + { + type: "select", + key: "app.postalpoint.basic-demo_dropdownbox", + defaultVal: "", + label: "Choose an option", + placeholder: "", + text: "", + options: [["key1", "Value 1"], ["key2", "Value 2"]] + } +]; diff --git a/0.48/Examples/basic-demo/uipluginpage.f7 b/0.48/Examples/basic-demo/uipluginpage.f7 new file mode 100644 index 0000000..f890bdd --- /dev/null +++ b/0.48/Examples/basic-demo/uipluginpage.f7 @@ -0,0 +1,56 @@ + + + + + diff --git a/0.48/Examples/crypto-processor/plugin.js b/0.48/Examples/crypto-processor/plugin.js new file mode 100644 index 0000000..06e083c --- /dev/null +++ b/0.48/Examples/crypto-processor/plugin.js @@ -0,0 +1,72 @@ +// This is a sample PostalPoint plugin that adds a card payment processor. + +exports.init = function () { + global.apis.pos.registerCryptoProcessor({ + name: "Demo Crypto", + init: async function () { + // This is run after PostalPoint starts, and before any other crypto functions are called. + }, + checkout: async function ( {amount}) { + // Run the checkout process. + // amount is the amount of USD to collect, in pennies. + + // If an error is encountered during processing, + // display an error message in a dialog and return boolean false. + // If this function returns anything except false or undefined, and doesn't throw an error, + // it is assumed the payment was successful. + + // Adds a line of text visible to the cashier + global.apis.pos.addOnscreenPaymentLog("Getting crypto payment..."); + + // Display a web page (i.e. with a payment QR code) to the customer on the customer-facing display. + global.apis.ui.setCustomerScreen("", "html"); + global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw"); + + // Poll the status of the crypto transaction + var paymentComplete = false; + do { + await global.apis.util.delay(1000); + paymentComplete = true; + } while (paymentComplete != true); + + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (amount / 100).toFixed(2) * 1, + "crypto", // Payment type. + "Bitcoin\n0.00001234 BTC" // Additional text for receipt + ) + ); + global.apis.pos.addOnscreenPaymentLog("Payment successful!"); + global.apis.ui.clearCustomerScreen(); + }, + cancelCheckout: function () { + // The user requested to cancel the payment. + // Reset things accordingly. + global.apis.ui.clearCustomerScreen(); + }, + isConfigured: function () { + // Is this plugin properly setup and able to process payments? If not, return false. + return true; + } + }); +} + +// Plugin settings to display. +exports.config = [ + { + type: "password", + key: "democryproprocessor_apikey", + defaultVal: "", + label: "API Key", + placeholder: "", + text: "API Key" + }, + { + type: "button", + label: "Test Button", + text: "Some text about the button", + onClick: function () { + global.apis.ui.openSystemWebBrowser("https://postalpoint.app"); + } + } +]; diff --git a/0.48/Examples/payment-processor/plugin.js b/0.48/Examples/payment-processor/plugin.js new file mode 100644 index 0000000..a5d8451 --- /dev/null +++ b/0.48/Examples/payment-processor/plugin.js @@ -0,0 +1,244 @@ +// This is a sample PostalPoint plugin that adds a card payment processor. + +exports.init = function () { + global.apis.pos.registerCardProcessor({ + name: "Demo Card Processor", + init: async function () { + // This function runs once after starting PostalPoint + // and before any other card processor functions are called. + }, + checkout: async function({amount, capture = true}) { + // amount is an integer number of pennies. + + // If an error is encountered during processing, + // display an error message in a dialog and return boolean false. + // If this function returns anything except false or undefined, and doesn't throw an error, + // it is assumed the payment was successful. + try { + if (capture) { + // authorize, capture, add a ReceiptPayment to the receipt, and return boolean true. + global.apis.pos.addOnscreenPaymentLog("Getting card payment..."); // Add a line to the onscreen card processing status log + await global.apis.util.delay(1000); // Replace this with something useful! + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (amount / 100).toFixed(2) * 1, + "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free. Other types will be displayed as-is to the user and on the receipt. + "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt + ) + ); + global.apis.pos.addOnscreenPaymentLog("Payment successful!"); + return true; + } else { + // only authorize the payment, don't actually capture/charge the payment method, + // and return whatever transaction data that will be passed to finishPayment to capture the payment. + await global.apis.util.delay(1000); // Replace this with something useful! + return {amount: amount}; + } + } catch (ex) { + global.apis.pos.addOnscreenPaymentLog(`Error: ${ex.message} [okay to put extra details here for troubleshooting or tech support, it's visible to the cashier]`); + if (global.apis.kiosk.isKiosk()) { + // This message will be shown to an end-user/customer, not a cashier/employee + global.apis.alert("Your card was declined.", "Card Error"); + } else { + global.apis.alert("The customer's card was declined.", "Card Error"); + } + return false; + } + }, + cancelCheckout: function () { + // The user requested to cancel the payment. + // Reset the terminal to its resting state, clear its screen, etc. + }, + finishPayment: async function ({checkoutResponse}) { + // Finish a payment that was authorized but not captured because checkout was called with capture = false + // If payment was already captured and added to the receipt for some reason, just return true. + await global.apis.util.delay(1000); // Replace this with something useful! + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (checkoutResponse.amount / 100).toFixed(2) * 1, + "card", // Payment type. + "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt + ) + ); + return true; + }, + updateCartDisplay: function (receipt) { + // Show transaction data on the card reader display. + // This function will be called when the cart or total changes. + console.log(receipt); + // Sample structure of the receipt variable: + receipt = { + "items": [ + { + "id": "testitem", + "label": "Test Item", + "text": "", + "priceEach": 2, + "qty": 1, + "cost": 0, + "retail": 2, + "taxRate": 0.1, + "free": false, + "barcode": "", + "certifiedInfo": false, + "isMerch": true, + "surcharge": false + }, + { + "id": "9100123456789012345678", + "label": "Test Package", + "text": "Package Details\nTracking # 9100 1234 5678 9012 3456 78\nTo:\nTEST PERSON\nORGANIZATION INC\n123 TEST ROAD\nTESTTOWN TE 99999-0001", + "priceEach": 8, + "qty": 1, + "cost": 0, + "retail": 8, + "taxRate": 0, + "free": false, + "barcode": "9100123456789012345678", + "certifiedInfo": false, + "isMerch": false, + "surcharge": false, + "toAddress": { + "name": "TEST PERSON", + "company": "ORGANIZATION INC", + "street1": "123 TEST ROAD", + "street2": null, + "city": "TESTTOWN", + "state": "TE", + "zip": "99999-0001", + "email": null, + "phone": null, + "country": "US" + }, + "fromAddress": { + "name": "TEST PERSON", + "company": "ORGANIZATION INC", + "street1": "123 TEST ROAD", + "street2": null, + "city": "TESTTOWN", + "state": "TE", + "zip": "99999-0001", + "email": null, + "phone": null, + "country": "US" + } + } + ], + "payments": [ + { + "amount": 10, + "amountFormatted": "$10.00", + "type": "cash", + "label": "Cash", + "text": "", + "texthtml": "", + "id": "12345678_cash_10" + }, + { + "amount": 12.34, + "amountFormatted": "$12.34", + "type": "card", + "label": "Card", + "text": "Card Details here\n1234abcd", + "texthtml": "Card Details here
1234abcd", + "id": "87654321_card_12.34" + } + ], + "subtotal": 10, + "subtotalFormatted": "$10.00", + "tax": 0.2, + "taxFormatted": "$0.20", + "grandTotal": 10.2, + "grandTotalFormatted": "$10.20", + "paid": 22.34, + "paidFormatted": "$22.34", + "due": -12.14, // If negative, is the amount of change owed to the customer instead + "dueFormatted": "$12.14" + }; + }, + checkoutSavedMethod: async function ({customerID, paymentMethodID, amount}) { + // Same as checkout() except using a payment method already on file. + // customerID and paymentMethodID are provided by getSavedPaymentMethods below. + await global.apis.util.delay(1000); // Replace this with something useful! + var error = false; + if (error) { + // If you can't charge the payment method, throw an Error with a string to display to the user. + throw new Error("The saved card didn't work."); + } + global.apis.pos.addReceiptPayment( + new global.apis.pos.ReceiptPayment( + (amount / 100).toFixed(2) * 1, + "card", // Payment type. + "Card on File\nx1234" // Additional text for receipt + ) + ); + // Must return true upon success. + // If the payment is not successful, and you didn't throw an Error to show the user, + // then `return false` instead and it'll appear that the user's action to start the payment did nothing. + return true; + }, + saveCardForOfflineUse: async function ({statusCallback, customerUUID, name, company, street1, street2, city, state, zip, country, email, phone}) { + // Use the card reader to capture an in-person card and save it for offline use. + // Provided details are the customer's info, which might be empty strings except for the customerUUID. + // Saved card details must be tied to the customerUUID, as that's how saved cards are looked up. + + // statusCallback(string, boolean) updates the progress message on the cashier's screen. + // If the boolean is true, the progress message is replaced with a confirmation message. + statusCallback("Insert the card into the reader.", false); + + await global.apis.util.delay(1000); // Wait for the customer to insert their card, + //then save it for later offline billing + + statusCallback("Saving card details...", false); + + await global.apis.util.delay(1000); + + statusCallback("Card saved!", true); + + return true; // Card saved to customer + // If an error occurred, you can throw it and the error message will be displayed to the cashier. + // Alternatively, return boolean false and display the error yourself with global.apis.alert(message, title) or something. + }, + cancelSaveCardForOfflineUse: function () { + // Cancel the process running in saveCardForOfflineUse() at the user/cashier's request. + }, + getSavedPaymentMethods: async function ({customerUUID}) { + // Return all saved payment methods tied to the provided customer UUID. + var methods = []; + methods.push({ + customer: "", // Passed to checkoutSavedMethod as customerID + customer_uuid: customerUUID, + id: "", // Passed to checkoutSavedMethod as paymentMethodID + type: "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free. + label: "Visa debit x1234 (exp. 12/29)", // Label for payment method + label_short: "Visa debit x1234" // Abbreviated label for payment method + }); + return methods; + }, + deleteSavedPaymentMethod: async function ({customerUUID, customerID, paymentMethodID}) { + // Delete the payment method identified by paymentMethodID and tied to the PostalPoint customerUUID and the card processor customerID. + // If unable to delete, throw an error and the error message will be displayed to the cashier. + await global.apis.util.delay(1000); + } + }); +} + +// Plugin settings to display. +exports.config = [ + { + type: "password", + key: "democardprocessor_apikey", + defaultVal: "", + label: "API Key", + placeholder: "", + text: "API Key" + }, + { + type: "button", + label: "Test Button", + text: "Some text about the button", + onClick: function () { + global.apis.ui.openSystemWebBrowser("https://postalpoint.app"); + } + } +]; diff --git a/0.48/Examples/shipping/plugin.js b/0.48/Examples/shipping/plugin.js new file mode 100644 index 0000000..d58e59b --- /dev/null +++ b/0.48/Examples/shipping/plugin.js @@ -0,0 +1,82 @@ +// This is a sample PostalPoint plugin for adding support for a shipping carrier. + +var rateCache = []; +var parcelCache = {}; + +exports.init = function () { + // Add support for shipping rating and label purchasing + global.apis.shipping.registerRateEndpoint(getRates, purchase, "uniqueprefixhere_"); + + // Add support for prepaid drop-offs + global.apis.barcode.onPrepaidScan(function (barcode) { + if (barcode.startsWith("mycarrierbarcode")) { // Replace this with your checks for barcode validity + var data = new global.apis.barcode.TrackingBarcode(barcode); + data.carrier = "Carrier Name"; + data.service = "Service Name"; + return data; + } + return false; + }); +} + +async function purchase(rateid) { + for (var i = 0; i < rateCache.length; i++) { + if (rateCache[i].rateid == rateid) { + var rate = rateCache[i]; + // + // Fetch label and tracking and such + // + var label; + var tracking = "123456"; + var toAddressLines = parcelCache.toAddress.toStringArray(); + + // Create receipt item + var receiptitem = new global.apis.pos.ReceiptItem(`uniqueprefixhere_${tracking}`, + `${rate.carrierName} ${rate.serviceName}`, + `Tracking # ${global.apis.util.string.chunk(tracking, 3).join(" ")}\nTo:\n${toAddressLines.join("\n")}`, + rate.retail_rate, 1, rate.cost_rate, 0 + ); + receiptitem.barcode = tracking; + receiptitem.carrier = "Carrier Name"; + receiptitem.service = "Service Name"; + + return { + label: label, + labeltype: "PNG", + receiptItem: receiptitem, + tracking: tracking, + cost: rate.cost_rate, + price: rate.retail_rate, + carrier: rate.carrierName, + service: rate.serviceName, + delivery_days: rate.delivery_days, + delivery_date: rate.delivery_date, + to: toAddressLines + }; + } + } +} + +async function getRates(parcel) { + // parcel is an object as shown in docs/Parcel.md + var rates = []; + rates.push({ + rateid: "uniqueprefixhere_" + global.apis.util.uuid.v4(), + carrier: "Carrier", + carrierName: "Carrier Name", + service: "CARRIER_SERVICE_ID", + cost_rate: 10, + retail_rate: 15, + delivery_days: 3, + delivery_date: null, + guaranteed: true, + serviceName: "Service Name", + color: "green" // Rate card color + }); + + // Save details for later use if purchased + rateCache = rates; + parcelCache = parcel; + + return rates; +} diff --git a/0.48/Plugin API/barcode/index.html b/0.48/Plugin API/barcode/index.html new file mode 100644 index 0000000..fb30181 --- /dev/null +++ b/0.48/Plugin API/barcode/index.html @@ -0,0 +1,1926 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Barcode - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Barcode

+ +

+

barcode : object

+

Handle tracking barcodes

+

Kind: global namespace

+ +

+

barcode.TrackingBarcode

+

Kind: static class of barcode
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
trackingstringTracking number
barcodestringOriginal barcode data this was created from
toZipstringDestination ZIP Code, for domestic shipments. The city and state are automatically added. If toAddress is specified, toZip is ignored in favor of it.
toCountrystringTwo-letter destination country code. If it doesn't match the country PostalPoint is running in, the full country name is appended to the displayed address information.
toAddressstringDestination mailing/shipping address.
carrierstringShipping carrier name.
servicestringShipping service/mail class name. Example: "Priority Mail".
dropoffbooleanIf set to false, the barcode will be rejected with a suitable message when PostalPoint is running in self-serve kiosk mode.
confidentCarrierbooleanIf false, PostalPoint may prompt user to specify the shipping carrier.
extraInfoArray.<string>Extra description strings, like "Signature Required".
messagestringIf not empty, the barcode will NOT be added and the contents of message will be displayed to the user.
warningstringIf not empty, the barcode WILL be added and the contents of warning will be displayed to the user.
destStringstring(read only) Get the destination information as a human-presentable multiline string.
serviceStringstring(read only) Get the carrier and service.
toString()functionGet the package information in a format suitable for display on a receipt.
toString(false)functionGet the package information in a format suitable for display on a receipt, suppressing the tracking number.
+

+

new TrackingBarcode(code)

+

A Tracking barcode object.

+ + + + + + + + + + + + + + + +
ParamTypeDescription
codestringBarcode data
+

+

barcode.addPrepaidBarcode(trackingBarcodeData)

+

Add a TrackingBarcode object to the transaction receipt at any time other than onPrepaidScan.

+

Kind: static method of barcode

+ + + + + + + + + + + + + +
ParamType
trackingBarcodeDataTrackingBarcode
+

+

barcode.inject(barcodeData)

+

Pass data to the internal barcode event subsystem. The data is handled as if it +were just received from a physical barcode scanner.

+

Kind: static method of barcode

+ + + + + + + + + + + + + +
ParamType
barcodeDatastring
+

+

barcode.onPrepaidScan(f)

+

The function passed to onPrepaidScan is run when a barcode is scanned on the Prepaid page. +The function is passed one argument, a string containing the raw barcode data. +The function shall return boolean false if unable or unwilling to handle the barcode. +If the barcode is handled by this function, it shall return a TrackingBarcode object.

+

Kind: static method of barcode

+ + + + + + + + + + + + + +
ParamType
ffunction
+

+

barcode.registerDropOffCarrierScanHandler(carrier, fn)

+

Register to handle prepaid drop off scans for a particular shipping carrier. +Scans are kept in a local, disk-backed queue and the function registered here will be +called when a queued barcode is processed for the provided carrier. +This function is intended for carrier drop-off reimbursement programs such as ASO and FASC.

+

Kind: static method of barcode
+Throws:

+
    +
  • Error - Only one plugin may register a particular carrier with this function; +any subsequent attempts to register to handle that carrier will throw an Error.
  • +
+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
carrierstringCarrier name to register for.
fnfunctionAsync function to pass scan details to. Returns true if processed, false if not processed (but the barcode should be removed from queue), or throws an Error if it should be retried later. See example for data and usage.
+

Example
+

global.apis.barcode.registerDropOffCarrierScanHandler("FedEx", function (data) {
+    global.apis.alert(`Carrier: ${data.carrier}, Tracking number: ${data.tracking}, `
+        + `Raw scanned barcode: ${data.barcode}, `
+        + `UNIX timestamp of scan: ${data.timestamp}, Scan UUID: ${data.uuid}`,
+        "Processing DropOffCarrierScan data");
+
+    return false; // Not processed but should be discarded
+    return true; // Processed, discard from queue
+    throw new Error("Failed to process, try again later");
+});
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/database/index.html b/0.48/Plugin API/database/index.html new file mode 100644 index 0000000..df470ea --- /dev/null +++ b/0.48/Plugin API/database/index.html @@ -0,0 +1,1578 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Database - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Database

+ +

+

database : object

+

Database connection

+

Kind: global namespace
+

+

database.getConnection() ⇒ Promise.<DatabaseAdapter>

+

Return a database connection object to run SQL against the store database. See the Database docs for details.

+

Kind: static method of database

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/fs/index.html b/0.48/Plugin API/fs/index.html new file mode 100644 index 0000000..8c581d2 --- /dev/null +++ b/0.48/Plugin API/fs/index.html @@ -0,0 +1,1829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Fs - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Fs

+ +

+

fs : object

+

Basic filesystem access utility functions, wrapping Node.JS and/or NW.JS code.

+

Kind: global namespace

+ +

+

fs.openFileSaveDialog(suggestedFilename, fileExtensions) ⇒ Promise.<(string|null)>

+

Open a file save as dialog prompting the user to save a file. +Opens to the user's Documents folder, with sane fallbacks if it cannot be located.

+

Kind: static method of fs
+Returns: Promise.<(string|null)> - The full file path the user selected, or null if they cancelled.

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
suggestedFilenamestringThe filename string to pre-fill in the dialog.
fileExtensionsstringThe file type filter to show. Examples: ".csv", ".csv,.html"
+

+

fs.openFileBrowseDialog(chooseFolder, accept, dialogTitle) ⇒ string | null

+

Open a file browse/file open dialog prompting the user to select a file or folder. +Opens to the user's Documents folder, with sane fallbacks if it cannot be located.

+

Kind: static method of fs
+Returns: string | null - The selected file/folder path, or null if cancelled.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
chooseFolderbooleanfalseSet to true to choose a folder instead of a file.
acceptstringFile filter. ".csv,.html", "image/*", etc.
dialogTitlestring | nullnullTitle of the file open dialog.
+

+

fs.writeFile(filename, data, encoding, flag) ⇒ Promise

+

Write a file to disk.

+

Kind: static method of fs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
filenamestringThe path and filename to write to.
datastring | Buffer | ArrayBuffer | Uint8ArrayData to write to the file.
encodingstring | null"utf8"Text encoding. Set to empty if not passing string data.
flagstring | null"w+"Filesystem flag.
+

+

fs.readFile(filename, encoding, flag) ⇒ Promise.<(string|Buffer)>

+

Read a file from disk and return its contents.

+

Kind: static method of fs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
filenamestringThe path and filename to read from.
encodingstring"utf8"File encoding. Set to null or empty string when reading binary data.
flagstring"r+"Filesystem flag.
+

+

fs.fileExists(filename) ⇒ boolean

+

Check if a file exists.

+

Kind: static method of fs

+ + + + + + + + + + + + + + + +
ParamTypeDescription
filenamestringPath and filename to check.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/global functions/index.html b/0.48/Plugin API/global functions/index.html new file mode 100644 index 0000000..1b554fd --- /dev/null +++ b/0.48/Plugin API/global functions/index.html @@ -0,0 +1,1666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Global functions - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + +
+ +
+ + + + + +

Global functions

+ +

+

f7

+

The Framework7 app instance for PostalPoint's entire UI, created by new Framework7(). +See https://framework7.io/docs/app for details.

+

Kind: global constant
+

+

getPluginFolder([id]) ⇒ string

+

Get the filesystem path to a plugin's installation folder.

+

Kind: global function
+Returns: string - "/home/user/.config/postalpoint-retail/Default/storage/plugins/...", "C:\Users\user\AppData...", etc

+ + + + + + + + + + + + + + + +
ParamTypeDescription
[id]stringPlugin ID. If omitted or empty, will return the parent folder plugins are installed within.
+

+

getAppFolder() ⇒ string

+

Get the filesystem path to the PostalPoint installation folder.

+

Kind: global function
+

+

alert(text, title, [callback])

+

Display a simple alert-style dialog box.

+

Kind: global function

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
textstringBody text of the dialog.
titlestringDialog title.
[callback]functionFunction to call when the alert is closed.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/graphics/index.html b/0.48/Plugin API/graphics/index.html new file mode 100644 index 0000000..adc4194 --- /dev/null +++ b/0.48/Plugin API/graphics/index.html @@ -0,0 +1,1629 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Graphics - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Graphics

+ +

+

graphics : object

+

PostalPoint uses the Jimp library version 1.6 for creating and manipulating images and shipping labels.

+

Kind: global namespace

+ +

+

graphics.Jimp() ⇒ Jimp

+

The JavaScript Image Manipulation Program.

+

Kind: static method of graphics
+Example
+

const {Jimp} = global.apis.graphics.Jimp();
+
+

+

graphics.loadFont(filename) ⇒ Promise

+

Replacement for Jimp's loadFont function, +which gets very confused about our JS environment and ends up crashing everything.

+

Kind: static method of graphics

+ + + + + + + + + + + + + +
ParamType
filenamestring
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/httpserver/index.html b/0.48/Plugin API/httpserver/index.html new file mode 100644 index 0000000..e4fafd5 --- /dev/null +++ b/0.48/Plugin API/httpserver/index.html @@ -0,0 +1,1734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Httpserver - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Httpserver

+ +

+

httpserver : object

+

Add features to PostalPoint's integrated LAN HTTP API server.

+

Kind: global namespace

+ +

+

httpserver.addEndpoint(id, onCall)

+

Add a custom HTTP JSON POST endpoint to the LAN HTTP API server running inside +PostalPoint. Requests must be POSTed and contain a JSON body (or empty body, which will be converted to null).

+

Kind: static method of httpserver

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
idstringEndpoint ID. Used in URL, for example: http://<host>:7678/<id>
onCallfunctionAsync function to call when the endpoint is called, which returns the response.
+

Example
+

global.apis.httpserver.addEndpoint("testendpoint", async function (request) {
+    if (request.abc == "123") {
+        // A non-string `body` is converted to JSON before the HTTP reply is sent.
+        return {body: {json: true, abc: 123}, httpcode: 200, contentType: "application/json"};
+    }
+    // A string `body` is sent to the client as-is using whatever contentType you specify.
+    return {body: "abc", httpcode: 200, contentType: "text/plain"};
+});
+
+

+

httpserver.getServerPort() ⇒ number

+

Get the local HTTP server's port number.

+

Kind: static method of httpserver
+

+

httpserver.getClientKey() ⇒ string

+

Get the local machine's HTTP client key it uses to authenticate with other +installations of PostalPoint on the LAN.

+

Kind: static method of httpserver
+

+

httpserver.sendRequestToRemote(data, endpointID, serverAddress, serverPort) ⇒ Promise.<Object>

+

Send a HTTP request to another PostalPoint installation on the local network.

+

Kind: static method of httpserver
+Returns: Promise.<Object> - The JSON reply.
+Throws:

+
    +
  • Error When there's a network or other unrecoverable error while completing the request. Error message is a human-readable description of the problem.
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
dataObjectData to encode as JSON in the request body.
endpointIDstringEndpoint to call.
serverAddressstring | undefinedAddress of the PostalPoint server. If undefined, uses the host address configured in PostalPoint's Databases settings.
serverPortnumber | undefinedPort of the PostalPoint server. If undefined, the default PostalPoint port number is used.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/i18n/index.html b/0.48/Plugin API/i18n/index.html new file mode 100644 index 0000000..90c2c96 --- /dev/null +++ b/0.48/Plugin API/i18n/index.html @@ -0,0 +1,1898 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + I18n - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

I18n

+ +

+

i18n : object

+

Functions to help support multiple currencies and countries.

+

Kind: global namespace

+ +

+

i18n.country() ⇒ string

+

Get the 2-character ISO country code that PostalPoint is running in.

+

Kind: static method of i18n
+Returns: string - "US", "CA", etc.
+

+

i18n.currency() ⇒ string

+

Get the 3-character currency code in use.

+

Kind: static method of i18n
+Returns: string - "usd", "cad", etc.
+

+

i18n.symbol() ⇒ string

+

Get the currency symbol.

+

Kind: static method of i18n
+Returns: string - "$", "€", "₤", etc
+

+

i18n.decimals() ⇒ number

+

Get the number of decimal places for the currency: for example, USD has 2 ($x.00), KRW has 0 (x), UYW has 4 (x.0000).

+

Kind: static method of i18n
+Returns: number - 0, 2, 3, or 4
+

+

i18n.convertCurrency(amount, fromCurrency, [toCurrency]) ⇒ Promise.<number>

+

Convert an amount of money to a different currency. Conversion rate is retrieved from the internet and cached for 4 hours.

+

Kind: static method of i18n

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
amountnumberAmount of money in the "wrong" currency
fromCurrencystringThe currency code for the "wrong" currency that needs conversion
[toCurrency]string"getCurrencyCode()"The "correct" currency we want the amount to be in.
+

+

i18n.moneyToFixed(amount) ⇒ string

+

Returns the amount as a string formatted with the correct number of decimal places for the currency in use.

+

Kind: static method of i18n
+Returns: string - "1.23", "1.2345", etc

+ + + + + + + + + + + + + +
ParamType
amountnumber
+

+

i18n.moneyString(amount) ⇒ string

+

Returns the amount as a string, with the correct decimal places, and the local currency symbol.

+

Kind: static method of i18n
+Returns: string - "$1.23", etc

+ + + + + + + + + + + + + +
ParamType
amountnumber
+

+

i18n.currencyMinorToMajor(amount) ⇒ number

+

Convert an amount in cents to dollars (or the local equivalent currency units).

+

Kind: static method of i18n
+Returns: number - Dollars, etc

+ + + + + + + + + + + + + + + +
ParamTypeDescription
amountnumberCents, etc
+

+

i18n.currencyMajorToMinor(amount) ⇒ number

+

Convert an amount in dollars to cents (or the local equivalent currency units).

+

Kind: static method of i18n
+Returns: number - Cents, etc

+ + + + + + + + + + + + + + + +
ParamTypeDescription
amountnumberDollars, etc
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/kiosk/index.html b/0.48/Plugin API/kiosk/index.html new file mode 100644 index 0000000..7f5448f --- /dev/null +++ b/0.48/Plugin API/kiosk/index.html @@ -0,0 +1,1579 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Kiosk - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Kiosk

+ +

+

kiosk : object

+

Self-serve kiosk mode

+

Kind: global namespace
+

+

kiosk.isKiosk() ⇒ boolean

+

Check if PostalPoint is running in kiosk mode.

+

Kind: static method of kiosk
+Returns: boolean - - True if system is in kiosk mode, else false.

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/mailboxes/index.html b/0.48/Plugin API/mailboxes/index.html new file mode 100644 index 0000000..62799c5 --- /dev/null +++ b/0.48/Plugin API/mailboxes/index.html @@ -0,0 +1,2341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Mailboxes - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Mailboxes

+ +

+

mailboxes : object

+

Add, modify, and delete mailboxes and mailbox customers.

+

Kind: global namespace

+ +

+

mailboxes.FormPS1583

+

Kind: static class of mailboxes
+

+

new FormPS1583()

+

USPS Form PS1583 object, with all the fields needed by USPS for CMRA customers.

+

+

mailboxes.getList(filter) ⇒ Promise.<Array>

+

Get the list of mailboxes and boxholders as an array of objects, see example.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
filternull | objectFilter to mailboxes matching a column condition, such as getList({number: "102"}) or getList({"size >=": "2"}). Supported filter names include "number" (string, box number), "expires" (expiration date), "size" (number 1-10), and "barcode" (string) SQL injection warning: Filter names are inserted directly into query strings without sanitization. Only the values are safe for user input.
+

Example
+

[{
+    num: "123", // Box number as string
+    expires: 1234567890, // UNIX timestamp (in seconds) or false if box vacant
+    size: "2", // Box size, 1-10
+    notes: "", // Notes for mailbox, not currently shown in Mailbox Manager UI but may be used in the future
+    barcode: "", // Unique barcode for the mailbox, for future use
+    renewalMerchID: "", // Merchandise item ID used for autorenewing this mailbox
+    isBusiness: false, // True if the box is for a business, false if for personal use
+    names: [], // Array of boxholders. See addOrUpdateBoxholder for the format.
+    packages: [], // Array of packages awaiting pickup, see below
+    vacant: false // True if the box is currently vacant, else false
+}]
+
+Example
+
// Data objects in the packages array:
+{
+    tracking: tracking ?? "[Untracked]", // Package tracking number
+    finalized: true, // True if package check-in is finished and shelf tag/mailbox slips printed, false if not finalized
+    available_date: Date(), // The date and time the package was checked in
+    tag: "" // Unique number assigned to the package and printed on shelf tags, scanned by employee when customer picks up package
+}
+
+

+

mailboxes.addDaysToMailbox(boxNumber, days, months) ⇒ Promise

+

Add a number of days or months to a mailbox's expiration. Use either days or months, not both.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
boxNumberstringMailbox number.
daysnumber0Days to add.
monthsnumber0Months to add.
+

+

mailboxes.setMailboxExpirationDate(boxNumber, date) ⇒ Promise

+

Set the box expiration to a specific JavaScript Date object, or a UNIX timestamp (in seconds).

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + +
ParamType
boxNumberstring
datenumber | Date
+

+

mailboxes.createMailbox(number, size, notes, barcode) ⇒ Promise

+

Create a new mailbox number with the specified box size. Throws an error if the box number is already in use.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number
sizenumberBox size (1 - 10)
notesstringArbitrary string with human-readable notes about the box.
barcodenull | stringA barcode value representing this mailbox, typically a sticker on the the physical box visible when delivering mail.
+

+

mailboxes.editMailbox(oldNumber, newNumber, newSize, barcode) ⇒ Promise

+

Change the number and/or size of a mailbox while preserving the boxholders +and packages associated. If only changing size, set oldNumber and newNumber to the same value.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
oldNumberstringCurrently assigned box number.
newNumberstringNew box number. Must not exist yet.
newSizenumber | nullBox size (1 - 10), if changing the size.
barcodenull | stringA barcode value representing this mailbox, typically a sticker on the the physical box visible when delivering mail.
+

+

mailboxes.deleteMailbox(number) ⇒ Promise

+

Delete a mailbox. Throws an Error if the mailbox has boxholders attached.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number to delete.
+

+

mailboxes.closeMailbox(number) ⇒ Promise

+

Close a mailbox by removing the boxholders and marking it as vacant. +Boxholder PS Form 1583 records are automatically archived per USPS regulations.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number to close.
+

+

mailboxes.mailboxExists(number) ⇒ Promise.<boolean>

+

Returns true if the mailbox number exists, false if it doesn't.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + +
ParamTypeDescription
numberstringMailbox number to check.
+

+

mailboxes.addOrUpdateBoxholder(boxNumber, info) ⇒ Promise

+

Modify or add a boxholder to a mailbox. info is the boxholder structure below. +If the uuid given already belongs to a boxholder, their info is updated with what you supply. +Otherwise, the info is added as a new boxholder.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
boxNumberstringMailbox number
infoObjectBoxholder information.
+

Example
+

// Unless noted, all fields are strings and default to an empty string.
+{
+    name: [bizname, fname, mname, lname].filter(Boolean).join(" "),
+    fname: "", // First name
+    mname: "", // Middle name
+    lname: "", // Last name
+    email: "", // Email
+    phone: "", // Phone
+    uuid: "", // Customer UUID
+    bizname: "", // Business name
+    street1: "", // Street address
+    city: "", // City
+    state: "", // Two-character state
+    zipcode: "", // ZIP or postal code
+    country: "", // Two-character country code
+    primary: true // True if the primary (first) boxholder, false if an additional authorized mail recipient
+}
+
+

+

mailboxes.removeBoxholder(boxNumber, uuid) ⇒ Promise

+

Remove a boxholder by their UUID, and archive their PS Form 1583 data per USPS regulations.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
boxNumberstringMailbox number.
uuidstringBoxholder UUID.
+

+

mailboxes.get1583(boxNumber, uuid, archiveNumber) ⇒ Promise.<FormPS1583>

+

Get the FormPS1583 object for a boxholder by UUID.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
boxNumberstringMailbox number.
uuidstringBoxholder UUID.
archiveNumberbooleanfalseIf true, returns the form for a deleted boxholder from the archive.
+

+

mailboxes.set1583(boxNumber, uuid, formps1583) ⇒ Promise

+

Set the FormPS1583 object for a boxholder by UUID.

+

Kind: static method of mailboxes

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
boxNumberstringMailbox number.
uuidstringBoxholder UUID.
formps1583FormPS1583The FormPS1583 object to use.
+

+

mailboxes.boxNumberValid() ⇒ boolean

+

Returns true if the mailbox number is an acceptable format, false if it isn't. +Does not check if the box actually exists, merely if the number is acceptable to use as a mailbox number.

+

Kind: static method of mailboxes
+

+

mailboxes.getMailboxProducts() ⇒ Promise.<Array>

+

Get a list of merchandise items that are usable for mailbox renewals.

+

Kind: static method of mailboxes
+Example
+

[{
+    id: "", // Unique ID for this entry in the merchandise table
+    name: "", // Merch item name
+    category: "", // Merch item category
+    price: 0.0, // Sale price in dollars
+    cost: 0.0, // Merchandise cost in dollars (likely not used for mailboxes)
+    barcode: "", // Barcode/UPC (likely not used for mailboxes)
+    tax: 0.0, // Sales tax rate
+    rentaldays: 30, // Number of days this item adds to a mailbox (mutually exclusive with rentalmonths)
+    rentalmonths: 1, // Number of months (mutually exclusive with rentaldays)
+    boxsize: "1" // Mailbox size tier, 1-10
+}]
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/pos/index.html b/0.48/Plugin API/pos/index.html new file mode 100644 index 0000000..400443f --- /dev/null +++ b/0.48/Plugin API/pos/index.html @@ -0,0 +1,2440 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Pos - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Pos

+ +

+

pos : object

+

Point of Sale, transaction, and payment-related functionality.

+

Kind: global namespace

+ +

+

pos.ReceiptItem

+

Kind: static class of pos
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
merchbooleanfalseTrue if merchandise, false if shipping.
barcodestringItem barcode, or tracking number if merch = false.
qtynumber1Item quantity.
retailPricenumberThe calculated retail/markup price for a shipment, regardless of actual sale price. If unset, defaults to priceEach * qty.
taxRatenumber0Tax rate
toAddressAddressShipping destination address.
fromAddressAddressShipping return address.
carrierstringShipping carrier.
servicestringShipping service.
categorystringMerchandise/item category.
electronicReturnReceiptbooleanfalseIf true, the customer's receipt will have instructions on retrieveing the return receipt from USPS.
mailboxDaysnumber0Number of days this item adds to a mailbox's expiration date.
mailboxMonthsnumber0Number of months this item adds to a mailbox's expiration date.
mailboxNumberstringMailbox number to apply mailboxDays or mailboxMonths to after checkout.
setCertifiedInfo()functionSet Certified Mail receipt data. setCertifiedInfo(trackingNumber, certfee, extrafees, postage, date, location, toaddress)
toJSON()functionGet the item as an object suitable for JSON encoding.
fromJSON(json)static_functionReturns a ReceiptItem created from the object returned by item.toJSON().
+

+

new ReceiptItem(id, label, text, priceEach, quantity, cost, taxrate, taxableAmount)

+

A class representing a sale item in the current transaction.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
idstringUnique ID number for this item (UPC code, inventory number, etc). Used to deduplicate and merge line items on the receipt. Unique items (like shipping labels) should be a unique/random ID.
labelstringOne-line item information.
textstringExtra multi-line item information.
priceEachnumberSale price per unit.
quantitynumberNumber of units.
costnumberCost per unit. Used for automatic expense tracking.
taxratenumber0.0Examples: 0 (for 0%), 0.05 (for 5%), etc
taxableAmountstringThe part of the sale price that's taxable. "" for default (all), "markup" for only taxing profit.
+

+

pos.ReceiptPayment

+

Kind: static class of pos
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
labelstring(readonly) The human-readable string of the payment type.
idstringAutomatically-generated unique ID for this payment.
toJSON()functionGet the payment as an object suitable for JSON encoding.
fromJSON(json)static_functionReturns a ReceiptPayment created from the object returned by payment.toJSON().
+

+

new ReceiptPayment(amount, type, text)

+

A class representing a payment entry for the current transaction.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
amountnumberamount paid
typestringpayment type
textstringextra data (credit card info, etc)
+

+

pos.addReceiptItem(item)

+

Add an item (shipment, merchandise, etc) to the current transaction.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
itemReceiptItem
+

+

pos.addReceiptPayment(payment)

+

Add a payment to the current transaction/receipt.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
paymentReceiptPayment
+

+

pos.addOnscreenPaymentLog(msg)

+

Append a line of text to the onscreen log displayed during credit card processing. +Not shown in kiosk mode.

+

Kind: static method of pos

+ + + + + + + + + + + + + + + +
ParamTypeDescription
msgstringLine of text to add to the log.
+

+

pos.getReceiptID() ⇒ string

+

Get the unique alphanumeric ID for the current transaction/receipt. +This is the same code printed on receipts and used in digital receipt URLs.

+

Kind: static method of pos
+

+

pos.onReceiptChange(f)

+

Specify a function to be called whenever the transaction data/receipt is changed. +It is passed a single argument, a Receipt object containing the entire transaction so far.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
ffunction
+

+

~~pos.onTransactionFinished(f)~~

+

Deprecated

+

The supplied function will be called when a transaction is finished. +It is passed a single argument, a Receipt object containing the entire transaction. +Recommended to listen for the transactionFinished event instead.

+

Kind: static method of pos

+ + + + + + + + + + + + + +
ParamType
ffunction
+

+

pos.registerCardProcessor(f)

+

Register as a card payment processor.

+

Kind: static method of pos

+ + + + + + + + + + + + + + + +
ParamTypeDescription
fObjectPayment processor functions
+

Example
+

global.apis.pos.registerCardProcessor({
+    name: "Demo Card Processor", // Shown in PostalPoint settings menu
+    init: async function () {
+        // This will run after PostalPoint launches
+        // and before any payments are processed.
+        // In some situations it might run multiple times in a session.
+    },
+    checkout: async function ({amount, capture = true}) {
+        // Charge a credit card using a card reader device.
+        // amount is in pennies (or the equivalent base unit in the local currency).
+
+        // Add a payment to the receipt with the total amount paid, card details, etc.
+        global.apis.pos.addReceiptPayment(
+            new global.apis.pos.ReceiptPayment(
+                global.apis.i18n.currencyMinorToMajor(amount),
+                "card", // Payment type. Accepted values are card, ach, crypto, cash,
+                // check, account, and free.  Other types will be displayed as-is.
+                "Demo Card\nCardholder Name, etc\nMore info for receipt" // Additional text for receipt
+            )
+        );
+
+
+        // Must return boolean false if the payment failed.
+        // Otherwise it will be assumed it succeeded.
+        // If an error is encountered, handle it and return false.
+        // It's recommended to display a short "payment failed" error
+        // message via global.apis.alert, and outputting more details
+        // via global.apis.pos.addOnscreenPaymentLog.
+
+        // If capture is false, perform an authorization but don't capture,
+        // and return a value you can use to identify the authorization later
+        // and complete it.  The value will be passed back to finishPayment, below.
+        // This is used mainly for the self-serve kiosk mode, in case the label fails
+        // to be purchased/generated by the carrier.
+    },
+    cancelCheckout: function () {
+        // The user has requested the card transaction be canceled before it completes.
+        // Reset the terminal to its resting state, clear its screen, etc.
+    },
+    finishPayment: async function ({checkoutResponse}) {
+        // Finish a payment that was authorized but not captured
+        // because checkout() was called with capture = false.
+        // If payment was already captured and added
+        // to the receipt, just return true.
+        global.apis.pos.addReceiptPayment(
+            new global.apis.pos.ReceiptPayment(
+                global.apis.i18n.currencyMinorToMajor(amount),
+                "card",
+                "Demo Card\nCardholder Name, etc\nMore info for receipt"
+            )
+        );
+    },
+    updateCartDisplay: function (receipt) {
+        // Show transaction data on the card reader display.
+        // This function is called when the "cart" or total changes.
+        // `receipt` is a receipt object, see docs for details.
+    },
+    checkoutSavedMethod: async function ({customerID, paymentMethodID, amount}) {
+        // Same as checkout() except using a payment method already on file.
+        // customerID and paymentMethodID are provided by getSavedPaymentMethods below.
+
+        // Must return true upon success.
+        // If the payment is not successful, and you didn't throw an Error to show the user,
+        // then `return false` instead and it'll appear that the user's action to start the payment did nothing.
+        return true;
+    },
+    saveCardForOfflineUse: async function ({statusCallback, customerUUID, name,
+             company, street1, street2, city, state, zip, country, email, phone}) {
+        // Use the card reader to capture an in-person card and save it for offline use.
+        // Provided details are the customer's info, which might be empty strings except for the customerUUID.
+        // Saved card details must be tied to the customerUUID, as that's how saved cards are looked up.
+
+        // statusCallback(string, boolean) updates the progress message on the cashier's screen.
+        // If the boolean is true, the progress message is replaced with a confirmation message.
+        statusCallback("Saving card details...", false);
+
+        return true; // Card saved to customer
+        // If an error occurred, you can throw it and the error
+        // message will be displayed to the cashier.
+        // Alternatively, return boolean false and display the error
+        // yourself with global.apis.alert(message, title) or something.
+    },
+    cancelSaveCardForOfflineUse: function () {
+        // Cancel the process running in saveCardForOfflineUse() at the user/cashier's request.
+    },
+    getSavedPaymentMethods: async function ({customerUUID}) {
+        // Return all saved payment methods tied to the provided customer UUID.
+        return [{
+            customer: "<internal string referencing the customer>", // Passed to checkoutSavedMethod as customerID
+            customer_uuid: customerUUID,
+            id: "<card/payment method identifier>", // Passed to checkoutSavedMethod as paymentMethodID
+            type: "card", // Payment type. Accepted values are card, ach, crypto, cash, check, account, and free.
+            label: "Visa debit x1234 (exp. 12/29)", // Label for payment method
+            label_short: "Visa debit x1234" // Abbreviated label for payment method
+        }];
+    },
+    deleteSavedPaymentMethod: async function ({customerUUID, customerID, paymentMethodID}) {
+        // Delete the payment method identified by paymentMethodID
+        // and tied to the PostalPoint customerUUID and the card processor customerID.
+        // If unable to delete, throw an error and the error message
+        // will be displayed to the cashier.
+    }
+});
+
+

+

pos.registerCryptoProcessor(f)

+

Register as a cryptocurrency payment processor.

+

Kind: static method of pos

+ + + + + + + + + + + + + + + +
ParamTypeDescription
fObjectPayment processor functions
+

Example
+

global.apis.pos.registerCryptoProcessor({
+    name: "Demo Crypto", // Shown in PostalPoint settings menu
+    init: async function () {
+        // This is run after PostalPoint starts,
+        // and before any other crypto functions are called.
+    },
+    checkout: async function ({amount}) {
+        // Run the checkout process.
+        // amount is the amount of fiat currency to collect,
+        // in pennies (or the local equivalent).
+
+        // If an error is encountered during processing,
+        //    display an error message in a dialog and return boolean false.
+        //    If this function returns anything except false or undefined,
+        //    and doesn't throw an error,
+        //    it is assumed the payment was successful.
+
+        // Adds a line of text visible to the cashier
+        global.apis.pos.addOnscreenPaymentLog("Getting crypto payment...");
+
+        // Display a web page (i.e. with a payment QR code)
+        // to the customer on the customer-facing display.
+        global.apis.ui.setCustomerScreen("<html></html>", "html");
+        global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw");
+
+        // Poll the status of the crypto transaction
+        var paymentComplete = false;
+        do {
+            await global.apis.util.delay(1000);
+            paymentComplete = true;
+        } while (paymentComplete != true);
+
+        global.apis.pos.addReceiptPayment(
+                new global.apis.pos.ReceiptPayment(
+                        global.apis.i18n.currencyMinorToMajor(amount),
+                        "crypto", // Payment type.
+                        "Bitcoin\n0.00001234 BTC" // Additional text for receipt
+                        )
+                );
+        global.apis.pos.addOnscreenPaymentLog("Payment successful!");
+        global.apis.ui.clearCustomerScreen();
+    },
+    cancelCheckout: function () {
+        // The user requested to cancel the payment.
+        // Reset things accordingly.
+        global.apis.ui.clearCustomerScreen();
+    },
+    isConfigured: function () {
+        // Is this plugin properly setup
+        // and able to process payments?
+        // If not, return false.
+        // This determines if the crypto payment method button will be shown.
+        return true;
+    }
+});
+
+

+

pos.getShippingSalesTax() ⇒ Object

+

Get the sales tax percentage to charge on a shipping service ReceiptItem.

+

Kind: static method of pos
+Returns: Object - {type: "", percent: 0.15} +type is an empty string for taxing the entire price, or "markup" for only adding tax to the markup amount. +percent is the tax percentage. A value of 0.15 means a 15% tax.

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/print/index.html b/0.48/Plugin API/print/index.html new file mode 100644 index 0000000..30e48ad --- /dev/null +++ b/0.48/Plugin API/print/index.html @@ -0,0 +1,1728 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Print - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Print

+ +

+ +

Printing to connected printers

+

Kind: global namespace

+ +

+

print.printLabelImage(image)

+

Print a 300 DPI image on the shipping label printer, centered on a 4x6 inch label. Image is automatically scaled to 200 DPI if required by the printer.

+

Kind: static method of print

+ + + + + + + + + + + + + + + +
ParamTypeDescription
imageArrayBuffer | Buffer | Uint8Array | string | Jimpimage data, as a Jimp image object, raw PNG bytes, or a URL (http/https) string. 1200x1800 or 800x1200 images are scaled to 4x6 inches. Other image sizes are assumed to be 300 DPI and are centered on the shipping label. Image orientation is rotated to match the label orientation.
+

+

print.getReceiptPrinter() ⇒ Promise.<Object>

+

Get the receipt printer interface. See the ReceiptPrinter docs for available functions.

+

Kind: static method of print
+

+

print.printReceiptData(data)

+

Send raw data (generated by the printer interface) to the receipt printer.

+

Kind: static method of print

+ + + + + + + + + + + + + + + +
ParamTypeDescription
datastring | Uint8Array | Array.<string> | Array.<Uint8Array>Data to send to printer.
+

+

print.imageToBitmap(jimpImage, [dpiFrom], [dpiTo]) ⇒ Object

+

Convert a Jimp image object to 1-bit monochrome image data before sending image data to a printer interface. Optionally scales the image to a different DPI before conversion.

+

Kind: static method of print
+Returns: Object - - Example: {width: 300, height: 200, img: Uint8Array}. Pass img to drawImage on a printer interface.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
jimpImageJimp
[dpiFrom]number300Original image DPI.
[dpiTo]number300New image DPI.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/reports/index.html b/0.48/Plugin API/reports/index.html new file mode 100644 index 0000000..6d188a1 --- /dev/null +++ b/0.48/Plugin API/reports/index.html @@ -0,0 +1,1655 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Reports - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Reports

+ +

+

reports : object

+

Define custom reports for the user.

+

Kind: global namespace
+

+

reports.registerReport(name, onload(startDate,endDate), date)

+

Kind: static method of reports

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
namestringReport name
onload(startDate,endDate)functionCalled when the report is loaded, with start and end Date objects. See example.
datebooleanIf the report requires a date range be selected.
+

Example
+

global.apis.reports.registerReport("sample", function (startDate, endDate) {
+
+ // Note about column datatypes:
+ // Use "string" for the datatype, except for the special cases listed here.
+ // Other datatypes may be added in the future, so use "string"
+ // unless you like unexpected behavior!
+ //
+ // datetime:   Column is a UNIX timestamp (in seconds).
+ //             It is displayed as a formatted date and time string.
+ // receiptid:  Column is a PostalPoint receipt ID number. Displayed as a link.
+ //             Clicking the ID will fetch and open the receipt in a popup.
+ // userid:     Column contains an employee ID number from the PostalPoint database.
+ //             It is queried in the database and replaced with the employee's name,
+ //             or with an empty string if the ID lookup has no results.
+ // money:      Column is a number that will be formatted as currency for display.
+ // percent:    Column is a percent value (as 12.3, not .123) and will be formatted
+ //             with a trailing % sign and rounded to two decimal places.
+
+ // Single-table report
+ return {
+   table: {
+     header: ["Column 1", "Column 2"],
+     datatypes: ["string", "string"],
+     rows: [
+       ["Row 1 Col 1", "Row 1 Col 2"],
+       ["Row 2 Col 1", "Row 2 Col 2"]
+     ]
+   }
+ };
+
+ // Multiple-table report
+ return {
+    multitable: true,
+    table: {
+      titles: ["Report 1 Title", "Report 2 Title"],
+      header: [["Report 1 Column 1", "Report 1 Column 2"], ["Report 2 Column 1", ...]],
+      datatypes: [["string", "string"], ["string", "string"]],
+      rows: [
+        [
+          ["Report 1 Row 1 Col 1", "Report 1 Row 1 Col 2"],
+          ["Report 1 Row 2 Col 1", "Report 1 Row 2 Col 2"]
+        ],
+        [
+          ["Report 2 Row 1 Col 1", "Report 2 Row 1 Col 2"],
+          ["Report 2 Row 2 Col 1", "Report 2 Row 2 Col 2"]
+        ]
+      ]
+    }
+  }
+}, true);
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/settings/index.html b/0.48/Plugin API/settings/index.html new file mode 100644 index 0000000..4aea96b --- /dev/null +++ b/0.48/Plugin API/settings/index.html @@ -0,0 +1,1658 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Settings - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Settings

+ +

+

settings : object

+

PostalPoint provides a UI for user-configurable plugin settings. +See exports.config in examples/basic-demo/plugin.js for details. +Settings are typically very short strings. Do not store data in settings. +For data storage, see Storing Data. Non-string settings values are transparently converted to/from JSON objects. +Use a unique key name prefix for your plugin to prevent key name conflicts. +Reverse domain style is recommended (i.e. "com.example.pluginname.keyname").

+

Kind: global namespace

+ +

+

settings.get(key, defaultValue) ⇒ *

+

Get a setting.

+

Kind: static method of settings

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringSetting key/ID
defaultValue*Value to return if setting has no stored value.
+

+

settings.set(key, value)

+

Set a setting.

+

Kind: static method of settings

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringSetting key/ID
valuestringValue to set.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/shipping/index.html b/0.48/Plugin API/shipping/index.html new file mode 100644 index 0000000..ac864a3 --- /dev/null +++ b/0.48/Plugin API/shipping/index.html @@ -0,0 +1,2196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Shipping - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Shipping

+ +

+

shipping : object

+

Add custom carrier and rates, and adjust markup.

+

Kind: global namespace

+ +

+

shipping.Address

+

Kind: static class of shipping
+

+

new Address()

+

A class representing an address.

+

+

shipping.getZIPCode(zipcode, country) ⇒ Object

+

Get data for a ZIP Code.

+

Kind: static method of shipping
+Returns: Object - Data about the ZIP code. See example. Fields may be empty if not available. Type may be "STANDARD", "UNIQUE", "PO BOX", or "MILITARY".

+ + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
zipcodestringZIP or postal code.
countrystring"US"Currently only "US" and "CA" are supported.
+

Example
+

{city: "NEW YORK", state: "NY", type: "STANDARD"}
+
+

+

shipping.getPackagingByID(id) ⇒ Promise.<Object>

+

Get a parcel's packaging type from PostalPoint's internal ID for it.

+

Kind: static method of shipping
+Returns: Promise.<Object> - See examples.

+ + + + + + + + + + + + + +
ParamType
idnumber
+

Example
+

{
+    id: 100,
+    type: "Parcel",
+    img: "box.png",
+    name: "Box",
+    service: "",
+    l: -1,
+    w: -1,
+    h: -1,
+    weight: true,
+    hazmat: true,
+    source: "Customer"
+}
+
+Example
+
{
+    id: 1,
+    type: "FlatRateEnvelope",
+    img: "pm-fres.png",
+    name: "Flat Rate Envelope",
+    service: "Priority",
+    l: -2,
+    w: -2,
+    h: -2,
+    weight: false,
+    hazmat: true,
+    usps_supplied: true,
+    envelope: true,
+    source: "USPS",
+    skus: ["PS00001000014", "PS00001000012", "PS00001000027", "PS00001000064", "PS00001001921", "PS00001035000", "PS00001036014", "PS00001128600", "https://qr.usps.com/epsspu?p=30", "https://qr.usps.com/epsspu?p=8"]
+}
+
+Example
+
{
+    id: 201,
+    type: "UPSLetter",
+    img: "ups-env.png",
+    name: "Envelope",
+    carrier: "UPS",
+    l: -2,
+    w: -2,
+    h: -2,
+    weight: true,
+    hazmat: true,
+    source: "OtherCarrier"
+}
+
+

+

shipping.getRetailPriceWithMarkup(cost, retail, carrier, service, weightOz, packaging) ⇒ Promise.<number>

+

Calculate the retail price for a shipment rate based on the configured margin settings.

+

Kind: static method of shipping
+Returns: Promise.<number> - The amount to charge the customer

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
costnumberCost of shipment to business
retailnumberDefault retail price from label provider
carrierstringShipment carrier
servicestringShipment service
weightOznumberThe weight of the shipment in ounces, or null if not available.
packagingstringAn empty string if not available, or "Letter", "FlatRateEnvelope", etc.
+

+

shipping.getCarrierName(carrierId) ⇒ string

+

Converts the carrier ID string into a consistent and human-readable name.

+

Kind: static method of shipping

+ + + + + + + + + + + + + +
ParamType
carrierIdstring
+

+

shipping.getServiceName(serviceId, carrier) ⇒ string

+

Converts the service ID string into a consistent and human-readable name. Set the carrier ID for better results.

+

Kind: static method of shipping

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDefault
serviceIdstring
carrierstring"USPS"
+

+

shipping.registerRateEndpoint(getRates, purchase, idPrefix)

+

Register the plugin as a shipping rate and label provider. See the Shipping example plugin.

+

Kind: static method of shipping

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
getRatesfunctionA function passed a Parcel object to get rates for. Returns a Promise that resolves to an array of rate objects.
purchasefunctionA function passed a rate ID to purchase. Returns a Promise that resolves to the label information.
idPrefixstringA unique string that will be prefixing all rate IDs from this plugin.
+

Example
+

// getRates sample return value:
+[{
+    rateid: `${idPrefix}_${global.apis.util.uuid.v4()}`,
+    carrier: "CarrierID",
+    carrierName: "Carrier Name",
+    service: "CARRIER_SERVICE_ID",
+    cost_rate: 10,
+    retail_rate: 15,
+    delivery_days: 3,
+    delivery_date: null,
+    guaranteed: true,
+    serviceName: "Service Name",
+    color: "green" // Rate card color
+}]
+
+Example
+
// purchase sample return value:
+{
+    label: labelImageToPrint,
+    labeltype: "PNG",
+    receiptItem: ReceiptItem,
+    tracking: "12345678901234567890",
+    cost: 10.0,
+    price: 15.0,
+    carrier: "Carrier Name",
+    service: "Service Name",
+    delivery_days: 3,
+    delivery_date: 1234567890, // UNIX timestamp
+    to: toAddressLines // Array of strings
+}
+
+

+

shipping.registerMarkupCalculator(markupFn)

+

Register the plugin to modify PostalPoint's shipping markup calculation during shipment rating.

+

Kind: static method of shipping
+Throws:

+
    +
  • Error Only one plugin may register with this function; +any subsequent attempts to register will throw an Error.
  • +
+ + + + + + + + + + + + + + + +
ParamTypeDescription
markupFnfunctionA function that must return either the retail price to charge for this rate, or false to opt-out of setting this particular rate.
+

Example
+

global.apis.shipping.registerMarkupCalculator(
+    // Parameters:
+    // cost:       Cost to shipper
+    // retail:     Carrier-suggested retail price
+    // suggested:  PostalPoint-suggested retail (default margin calc)
+    // carrier:    Shipping carrier name
+    // service:    Shipping service code
+    // weightOz:   The weight of the shipment in ounces, or null if not available.
+    // packaging:  An empty string if not available, or "Letter", "FlatRateEnvelope", etc. See https://docs.easypost.com/docs/parcels#predefined-package
+    // parcel:     The Parcel object for this shipment.  May be null for some rate-only requests without a shipment, such as USPS price calculations.
+    function (cost, retail, suggested, carrier, service, weightOz, packaging, parcel) {
+        if (carrier == "USPS") {
+            if (service == "First-Class Mail") {
+                // Handle First-Class Mail differently if it's a 1oz letter (i.e. Forever stamp)
+                if (weightOz <= 1 && packaging == "Letter") {
+                    return retail + 0.05;
+                } else {
+                    return retail + 0.25;
+                }
+            }
+            // Handle flat rate envelopes differently
+            if (global.apis.shipping.getServiceName(service, carrier) == "Priority Mail" && packaging == "FlatRateEnvelope") {
+                return retail + 1.0;
+            }
+            return suggested + 2.0; // Charge the PostalPoint-calculated amount plus $2
+        } else {
+            return cost * 2; // Charges the customer double the shipment's cost.
+        }
+    }
+);
+
+

+

shipping.registerInsuranceProvider(id, name, cardText, maxValue, getQuote, insure)

+

Add a shipping insurance provider.

+

Kind: static method of shipping

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
idstring | nullUnique ID for the provider. Will be autogenerated if null.
namestringHuman-readable name for the provider. Shown as the card heading on the Insurance section of the Ship screen.
cardTextstringText or HTML to display on the Ship screen card for this provider.
maxValuenumberThe largest number that will be accepted for the "Insured for" value.
getQuotefunctionReturns the cost and retail price for insuring the parcel, or a Promise that resolves into the same. See the example for details.
insurefunctionInsure the parcel and add the insurance details to the receipt. See example.
+

Example
+

async function getQuote(value, parcel, carrier, service) {
+    // Do math, etc
+    var cost = value / 100;
+
+    return {
+        cost: cost,
+        retail: cost * 2
+    };
+    // Or, to remove this shipping rate from the list,
+    // because the shipment/carrier/service combination
+    // is not eligible for insurance:
+    return false;
+}
+
+async function insure(value, parcel, carrier = "USPS", service = "Priority", trackingNumber = "94055...") {
+    // Purchase the insurance
+    var cost = value / 100;
+    var retailPrice = cost * 2;
+    var costPrice = cost;
+
+    var receiptitem = new global.apis.pos.ReceiptItem(`sampleinsurance_${trackingNumber}`,
+        "Sample Insurance",
+        "Insured for " + global.apis.i18n.moneyString(value),
+        retailPrice, 1, costPrice, 0
+    );
+    receiptitem.merch = true;
+    receiptitem.category = "Shipping Insurance";
+    receiptitem.barcode = trackingNumber;
+    global.apis.pos.addReceiptItem(receiptitem);
+}
+
+global.apis.shipping.registerInsuranceProvider(
+     "sampleproviderid", "Sample Insurance",
+     "Insurance coverage from Sample Insurance. $1 per $100 of value.",
+     5000, getQuote, insure);
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/storage/index.html b/0.48/Plugin API/storage/index.html new file mode 100644 index 0000000..f0f8786 --- /dev/null +++ b/0.48/Plugin API/storage/index.html @@ -0,0 +1,1845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Storage - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Storage

+ +

+

storage : object

+

Get and set data.

+

Kind: global namespace

+ +

+

storage.getSmall(key, defaultValue) ⇒ *

+

Get a value from the small data storage, using localStorage or a similar mechanism (may change in the future).

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
defaultValue*Value to return if the item key doesn't have a stored value.
+

+

storage.setSmall(key, value)

+

Set a value in the small data storage, using localStorage or a similar mechanism (may change in the future).

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
value*Value to store.
+

+

storage.getBig(key, defaultValue)

+

Get a value in the large data storage. Unserialized from a JSON file on disk.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
defaultValue*Value to return if the item key doesn't have a stored value.
+

+

storage.setBig(key, value)

+

Set a value in the large data storage. Serialized to JSON and stored on disk as a file.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
value*Value to store.
+

+

storage.getDB(key, defaultValue) ⇒ Promise.<*>

+

Get a value from the database storage. Unlike other storage types, values in the database are available on all PostalPoint installations in a single location.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
defaultValue*Value to return if the item key doesn't have a stored value.
+

+

storage.setDB(key, value) ⇒ Promise

+

Set a value in the database storage. Non-string values are serialized to JSON. Unlike other storage types, values in the database are available on all PostalPoint installations in a single location.

+

Kind: static method of storage

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
keystringStorage item key/ID
value*Value to store.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/ui/index.html b/0.48/Plugin API/ui/index.html new file mode 100644 index 0000000..d4b9f2b --- /dev/null +++ b/0.48/Plugin API/ui/index.html @@ -0,0 +1,2227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Ui - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

Ui

+ +

+

ui : object

+

Interact with and modify the PostalPoint user interface.

+

Kind: global namespace

+ +

+

ui.addToolsPage(page, title, id, description, cardTitle, icon, type)

+

Add a page to the Tools screen. If type is set to "function", the page argument +will be run as a function and will not be expected to return a page component. +Framework7 Page Component documentation

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
pagestring | functionPage content as a Framework7 component page. If page is a string ending in .f7 it is treated as a file path and the page content will be loaded from disk. If page is any other string, it is treated as the page content. If page is a function, it will be called and must return the page content (unless type is set to "function", see examples)
titlestringPage title.
idstringPage ID. Make it unique, or pass an empty string to be assigned a random ID.
descriptionstringDescription of this tool for its card on the Tools screen.
cardTitlestringTitle of the card for this page on the Tools screen.
iconstringFontAwesome icon class, for example, "fa-solid fa-globe". FontAwesome Pro solid, regular, light, and duotone icons are available.
typestring"page"What kind of data is supplied by page: "page" or "function".
+

Example
+

// Full plugin that displays an alert when the card is clicked on the Tools page
+exports.init = function () {
+    global.apis.ui.addToolsPage(
+                                 displayMessage,
+                                 "click me",
+                                 "clickmecard",
+                                 "Click here to see a message",
+                                 "Click This Card",
+                                 "fa-solid fa-arrow-pointer",
+                                 "function"
+                               );
+}
+
+function displayMessage() {
+    global.apis.alert("Card clicked");
+}
+
+Example
+
// Open a dynamically-generated page
+function rollDice() {
+    var randomNumber = Math.round(Math.random() * 6) + 1;
+    return `<div class="page">
+        <div class="navbar">
+            <div class="navbar-bg"></div>
+            <div class="navbar-inner">
+                <a href="#" class="link back">
+                    <i class="icon icon-back"></i>
+                </a>
+                <div class="title">Random Number</div>
+            </div>
+        </div>
+        <div class="page-content">
+            <div class="block">
+                <h1>You rolled ${randomNumber}</h1>
+            </div>
+        </div>
+    </div>`;
+}
+global.apis.ui.addToolsPage(
+                             rollDice,
+                             "Random",
+                             "randomnumbercard",
+                             "Click here for a random number",
+                             "Random Number",
+                             "fa-regular fa-dice",
+                             "page"
+                           );
+
+Example
+
// Open a page from a file.
+// See https://framework7.io/docs/router-component#single-file-component
+global.apis.ui.addToolsPage(
+                             global.apis.getPluginFolder("example-plugin") + "/page.f7",
+                             "Page",
+                             "filepage",
+                             "Open page.f7 from the plugin installation folder",
+                             "Open Custom Page",
+                             "fa-regular fa-file",
+                             "page"
+                           );
+
+

+

ui.addHomeTab(content, title, icon, id) ⇒ undefined

+

Add a custom tab to the PostalPoint home screen. Works almost the same as addToolsPage.

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
contentstring | functionTab content. It is rendered/processed when the user navigates to the Home screen and clicks the tab; if the user navigates to a different screen and back to Home, it will be re-rendered. If content is a string ending in .f7 it is treated as a file path and the content will be loaded from disk. If content is any other string, it is treated as the content. If content is a function, it will be called and must return the content.
titlestringTab title. Keep it short; depending on screen size and tab count, you have as little as 150px of space.
iconstringFontAwesome icon displayed above the tab title.
idstringTab ID. Make it unique, or pass an empty string to be assigned a random ID. If addHomeTab is called with a tab ID that is already registered, it will be overwritten.
+

Example
+

global.apis.ui.addHomeTab("<div class='block'>Hello</div>", "Hello Tab", "fa-duotone fa-hand-wave", "hellotab");
+
+Example
+
function renderTab() {
+    return "<template><div><h1>${hellovar}</h1></div></template><script>export default (props, {$on, $update, $f7}) => {var hellovar = 'hello world'; return $render;}</script>";
+}
+global.apis.ui.addHomeTab(renderTab, "Hello Template", "fa-duotone fa-file-code", "hellotemplatetab");
+
+

+

ui.showProgressSpinner(title, text, subtitle) ⇒ undefined

+

Show a notification with a loading icon.

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
titlestringThe message to show on the spinner.
textstringOptional. Body text on the spinner.
subtitlestringOptional. Sub-heading under the title.
+

+

ui.hideProgressSpinner()

+

Close the notification opened by showProgressSpinner.

+

Kind: static method of ui
+

+

ui.openSystemWebBrowser(url)

+

Open the native OS default browser to the URL given.

+

Kind: static method of ui

+ + + + + + + + + + + + + +
ParamType
urlstring
+

+

ui.openInternalWebBrowser(url)

+

Open a web browser inside PostalPoint. The browser has forward/back/close buttons.

+

Kind: static method of ui

+ + + + + + + + + + + + + +
ParamType
urlstring
+

Example
+

global.apis.ui.openInternalWebBrowser("https://postalpoint.app");
+global.apis.eventbus.on("browserNavigate", function (newUrl) {
+    global.apis.alert(`New URL: ${newUrl}`, "Browser Navigated");
+    if (newUrl == "https://closeme.com") {
+        global.apis.eventbus.emit("browserCloseRequest");
+    }
+});
+
+

+

ui.clearCustomerScreen()

+

Clear any custom content on the customer-facing display, defaulting back to blank/receipt/shipping rates, as applicable.

+

Kind: static method of ui
+

+

ui.setCustomerScreen(content, type, displayInCard, cardSize, displayStatusBar)

+

Render content on the customer-facing display. +Encodes content as a data URI (example: data:text/html;charset=utf-8,${content}) +and renders on the customer-facing display. If type is html, renders the string as HTML. +If type is pdf, displays a PDF viewer. If type is raw, functions like setting an iframe's +src to content. All other type values are rendered as text/plain. +To display the iframe in a card centered on the screen, set displayInCard to true +and pass the desired dimensions (w, h) of the card in px. +If the requested size is larger than the available screen space, the card will instead +fill the available space. +Warning: Do not load third-party websites, this is a security risk. +Wrap it in a tag if you need to display one.

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
contentstringPage content.
typestring"html"Format of the content. One of "html", "pdf", "raw", "body", or "text".
displayInCardbooleanfalseSet to true to wrap the content in a card UI.
cardSizeArray.<number>[300,300Size of the card UI if displayInCard == true.
displayStatusBarbooleantrueWhether the bar on the bottom of the screen should be visible, containing the store logo and scale weight.
+

Example
+

// How content is converted by PostalPoint before display:
+if (type == "html") {
+    customerScreenContent = `data:text/html;charset=utf-8,${content}`;
+} else if (type == "pdf") {
+    customerScreenContent = `data:application/pdf,${content}`;
+} else if (type == "raw") {
+    global.customerScreenContent = `${content}`;
+} else if (type == "body") {
+    customerScreenContent = `data:text/html;charset=utf-8,<!DOCTYPE html>
+    <meta charset="utf-8">
+    <title></title>
+    <style>
+        html, body {margin: 0; padding: 0; font-family: Roboto, Ubuntu, Arial, sans-serif;}
+        h1, h2, h3 {margin: 0;}
+    </style>
+    <div id="maindiv">${content}</div>`;
+} else {
+    customerScreenContent = `data:text/plain;charset=utf-8,${content}`;
+}
+
+

+

ui.collectSignatureFromCustomerScreen(title, terms, termstype)

+

Show a signature pad on the customer-facing display. +When the customer indicates the signature is finished, +the customerSignatureCollected event is emitted with the data +{"svg": "data:image/svg+xml;base64,...", "png": "data:image/png;base64,..."}

+

Kind: static method of ui

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
titlestringnullDisplay a title/header on the customer screen. Currently ignored, but may be used in the future.
termsstring | booleanfalseSet to a string to display terms and conditions or other text content next to the signature pad.
termstypestring"body""html", "pdf", "raw", or "body". See setCustomerScreen()
+

Example
+

global.apis.ui.collectSignatureFromCustomerScreen("", "<p>By signing, you agree to pay us lots of money</p>", "body");
+global.apis.eventbus.on("customerSignatureCollected", function (sigdata) {
+    const pngDataURL = sigdata.png;
+    const svgDataURL = sigdata.svg;
+});
+
+

+

ui.cancelSignatureCollection()

+

Cancels customer signature collection and returns the customer-facing display to normal operation.

+

Kind: static method of ui
+Example
+

global.apis.ui.cancelSignatureCollection();
+
+

+

ui.clearSignaturePad()

+

Erase the signature drawn on the customer-facing display. +Note that the customer is also provided a button to do this.

+

Kind: static method of ui
+Example
+

global.apis.ui.clearSignaturePad();
+
+

+

ui.getCustomerDisplayInfo() ⇒ Object

+

Describes if the customer-facing display is currently enabled, +and if it supports customer touch interaction.

+

Kind: static method of ui
+Returns: Object - {"enabled": true, "touch": true}
+Example
+

var info = global.apis.ui.getCustomerDisplayInfo();
+

+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/user/index.html b/0.48/Plugin API/user/index.html new file mode 100644 index 0000000..25d1e95 --- /dev/null +++ b/0.48/Plugin API/user/index.html @@ -0,0 +1,1831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + User - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + + +

User

+ +

+

user : object

+

Access data about employees.

+

Kind: global namespace

+ +

+

user.User

+

Kind: static class of user
+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
idnumber
namestring
passstring
barcodestring
enabledboolean
hasPassword()functionReturns true if the user has a password set, else false.
checkPassword(string)functionReturns true if the provided password matches the user's password, or if there is no password set.
icon(number)functionReturns a SVG data URI with a procedurally-generated icon for the user. Size defaults to 50px if not specified.
+

+

new User(id, name, password, barcode, enabled)

+

A User object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamType
idnumber
namestring
passwordstring
barcodestring
enabledboolean
+

+

user.getUser() ⇒ User

+

Get the user currently logged in.

+

Kind: static method of user
+

+

user.getUserID() ⇒ number

+

Get the current user's ID number.

+

Kind: static method of user
+

+

user.getUserByID() ⇒ Promise.<User>

+

Look up the User for an ID number.

+

Kind: static method of user
+

+

user.listUsers([managerMode]) ⇒ Promise.<Array.<User>>

+

Get a list of all users in the system.

+

Kind: static method of user

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
[managerMode]booleanfalseIf false, list only active/enabled users, and if no users, return a default user account (user ID -1). If true, return all users in the database, and don't return a default account if the list is empty (return an empty list instead).
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/Plugin API/util/index.html b/0.48/Plugin API/util/index.html new file mode 100644 index 0000000..d33a9e8 --- /dev/null +++ b/0.48/Plugin API/util/index.html @@ -0,0 +1,2971 @@ + + + + + + + + + + + + + + + + + + + + + + + + Util - PostalPoint Plugin Development + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + + + +

Util

+ +

+

util : object

+

Various utility functions: HTTP, time/date, barcode creation, clipboard, etc.

+

Kind: global namespace

+ +

+

util.uuid : object

+

Unique ID generators.

+

Kind: static namespace of util

+ +

+

uuid.v4() ⇒ string

+

Generate a UUID string

+

Kind: static method of uuid
+Returns: string - UUID v4 with dashes: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
+

+

uuid.short([length]) ⇒ string

+

Generate a short random alphanumeric string.

+

Kind: static method of uuid
+Returns: string - A string of length length, from the character set "acdefhjkmnpqrtuvwxy0123456789".

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
[length]number16String character count.
+

+

util.http : object

+

HTTP requests and webhooks.

+

Kind: static namespace of util

+ +

+

http.webhook : object

+

Use webhooks via a PostalPoint cloud relay service.

+

Kind: static namespace of http

+ +

+
webhook.geturl(sourcename) ⇒ Promise.<string>
+

geturl - Returns a public URL that can be used as a webhook target/endpoint for third-party integrations.

+

Kind: static method of webhook
+Returns: Promise.<string> - A URL for the webhook.

+ + + + + + + + + + + + + + + +
ParamTypeDescription
sourcenamestringUnique identifier for the webhook
+

+
webhook.poll(sourcename) ⇒ Promise.<Array.<Object>>
+

poll - Returns an array of webhook payloads received by the webhook identified by sourcename.

+

Kind: static method of webhook
+Returns: Promise.<Array.<Object>> - Payloads as received by the webhook relay service.

+ + + + + + + + + + + + + + + +
ParamTypeDescription
sourcenamestringUnique identifier for the webhook
+

Example
+

[
+     {
+         // Unique ID. Used for ack(webhookid).
+         id: 123,
+
+         // UNIX timestamp (in seconds) of when the data was received by the webhook URL.
+         timestamp: 1234567890,
+
+         // Source name set in geturl()
+         source: "sourcename",
+
+         // JSON string of all the HTTP headers sent to the webhook URL.
+         headers: "{'Content-Type': 'application/json'}",
+
+         // Entire HTTP request body sent to the webhook URL.
+         body: ""
+     }
+]
+
+

+
webhook.ack(webhookid)
+

Acknowledge receipt of a webhook payload, deleting it from the relay server. +Webhook payload is only queued for deletion, so polling may still return it for a short time.

+

Kind: static method of webhook

+ + + + + + + + + + + + + + + +
ParamTypeDescription
webhookidnumberNumeric unique ID received with the payload. See poll.
+

+

http.post(url, data, [responseType], [headers], [method], [continueOnBadStatusCode], [timeoutSeconds]) ⇒ Promise.<(string|Blob|ArrayBuffer|Object)>

+

post - Fetch a HTTP POST request.

+

Kind: static method of http
+Returns: Promise.<(string|Blob|ArrayBuffer|Object)> - The server response body. See responseType parameter.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
urlstring
dataObject.<string, string>POST data key/value list
[responseType]string"text""text", "blob", "buffer", or "json"
[headers]Object.<string, string>HTTP headers to send. Defaults to {"Content-Type": "application/json"}.
[method]string"POST"
[continueOnBadStatusCode]booleanfalseIf false, throws an Error when the HTTP response code is not 2XX. If true, ignores the response code and proceeds as normal.
[timeoutSeconds]number15Aborts the request (timeout) after this many seconds.
+

+

http.fetch(url, [responseType], [timeoutSeconds]) ⇒ Promise.<(string|Blob|ArrayBuffer|Object)>

+

fetch - Fetch a HTTP GET request.

+

Kind: static method of http
+Returns: Promise.<(string|Blob|ArrayBuffer|Object)> - The server response body. See responseType parameter.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
urlstring
[responseType]string"text""text", "blob", "buffer", or "json"
[timeoutSeconds]number15Aborts the request (timeout) after this many seconds.
+

+

util.string : object

+

String manipulation functions.

+

Kind: static namespace of util

+ +

+

string.split(input, separator, [limit]) ⇒ Array.<string>

+

Split a string with a separator regex.

+

Kind: static method of string

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
inputstringInput string
separatorstringPassed to new RegExp(separator, 'g')
[limit]numberMaximum number of splits to perform
+

+

string.chunk(input, chunksize) ⇒ Array.<string>

+

Split a string into chunks of length chunksize.

+

Kind: static method of string

+ + + + + + + + + + + + + + + + + + + + +
ParamTypeDescription
inputstringInput string
chunksizestringNumber of characters per chunk
+

+

util.time : object

+

Date and time functions

+

Kind: static namespace of util

+ +

+

time.now() ⇒ number

+

Get the current UNIX timestamp in seconds.

+

Kind: static method of time
+

+

time.diff(compareto) ⇒ number

+

Get the number of seconds between now and the given Date or UNIX timestamp in seconds.

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
comparetonumber | Date
+

+

time.strtotime(str) ⇒ number

+

Parse a string date and return UNIX timestamp (in seconds).

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
strstring
+

+

time.format(format, [timestamp]) ⇒ string

+

Take a Date or UNIX timestamp in seconds and format it to a string. +Mostly compatible with the PHP date format codes.

+

Kind: static method of time

+ + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
formatstring"Y-m-d H:i:s", etc
[timestamp]number | Datenow()
+

+

time.toDateString(timestamp) ⇒ string

+

Format a UNIX timestamp (in seconds) as a localized date string.

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
timestampnumber
+

+

time.toTimeString(timestamp) ⇒ string

+

Format a UNIX timestamp (in seconds) as a localized time string.

+

Kind: static method of time

+ + + + + + + + + + + + + +
ParamType
timestampnumber
+

+

util.clipboard : object

+

OS clipboard

+

Kind: static namespace of util
+

+

clipboard.copy(text, [showNotification]) ⇒ Promise.<boolean>

+

Copy a string to the system clipboard.

+

Kind: static method of clipboard
+Returns: Promise.<boolean> - True if the copy succeeded, else false.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
textstring
[showNotification]booleanfalseIf true, a "Copied" notification will appear onscreen briefly.
+

+

util.barcode : object

+

Barcode image generation functions.

+

Kind: static namespace of util

+ +

+

barcode.getBuffer(data, [type], [height], [scale], [includetext]) ⇒ Promise.<Buffer>

+

Get a PNG image buffer of a barcode. Uses library "bwip-js".

+

Kind: static method of barcode
+Returns: Promise.<Buffer> - PNG data for the barcode.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
datastring
[type]string"\"code128\""
[height]number10
[scale]number2
[includetext]booleanfalseSet true to render the barcode's content as text below the code.
+

+

barcode.getBase64(data, [type], [height], [scale], [includetext]) ⇒ Promise.<string>

+

Get a PNG image of a barcode as a base64 data URI. Uses library "bwip-js".

+

Kind: static method of barcode
+Returns: Promise.<string> - "data:image/png;base64,..."

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
datastring
[type]string"\"code128\""
[height]number10
[scale]number2
[includetext]booleanfalseSet true to render the barcode's content as text below the code.
+

+

util.geography : object

+

Kind: static namespace of util
+

+

geography.isoToCountryName(iso) ⇒ string

+

Get a human-readable country name from an ISO country code.

+

Kind: static method of geography

+ + + + + + + + + + + + + + + +
ParamTypeDescription
isostring | number2 or 3 letter country code, or numeric country code.
+

+

util.objectEquals(a, b) ⇒ boolean

+

Compare two objects for equality. See https://stackoverflow.com/a/16788517

+

Kind: static method of util
+Returns: boolean - True if equal, else false.

+ + + + + + + + + + + + + + + + + +
ParamType
a*
b*
+

+

util.delay([ms]) ⇒ Promise

+

Pause execution for some amount of time in an async function, i.e., returns a Promise that resolves in some number of milliseconds.

+

Kind: static method of util

+ + + + + + + + + + + + + + + + + +
ParamTypeDefaultDescription
[ms]number1000Number of milliseconds to pause.
+ + + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/0.48/assets/external/fonts.googleapis.com/css.49ea35f2.css b/0.48/assets/external/fonts.googleapis.com/css.49ea35f2.css new file mode 100644 index 0000000..0dd39d4 --- /dev/null +++ b/0.48/assets/external/fonts.googleapis.com/css.49ea35f2.css @@ -0,0 +1,756 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* math */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2'); + unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF; +} +/* symbols */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2'); + unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWoKC.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWoKC.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..421afd079606610eba2b9ee789fb883cef7b7fe3 GIT binary patch literal 25464 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

{o`kr;hYMGf&^hQcY$$9_?A8>37ZoLrz>QNX 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 M=6ebZsw6=J0D#J^LI3~& literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..96f6a37479b061388533bef45fb2571ede986eb1 GIT binary patch literal 40480 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..71a854c151166df6c52aac328b0060334a5fdc8e GIT binary patch literal 31820 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

4Z*mk zilA4c??&ct5X_vnm)D zf!)J^j#QF;r*Vr(2b-{CZ=o-Fk9{{-O1n{9Eif$*W##Otp*I4jOaCt5_e(gM1@lW? zOQ2kc#K5!C%@Pz0TPS2x0*SR_ZiUI;;rsqWqW_1rSO5U0|FY-- z0C@e8W%#H1{zH1}GcYK@000C?gC`15L?D>A?y+FIfV6!vS=rS8`%45(^(Pv`S34Ri zUm^Jw)+9!+U4#x>dMXi#eXcVmB##*U(W9UL62HlgnL{W-Sz9J;AuyM zF~aZ85=LD5jlIT#2k^F zlZ2T-d@&b@urnWsa?2}#7$eR|PFv!dkb!@Q8fFsnlbyrs>_Fcj0)fy)^0zSFW zo=#kTLkJ)(Yl+Atfk8ucGq5+;F>oLNZh7-~4zC2TYpMPHbqEIB&}20b2fw8?9@@p4 z0GIKD2<^Ccji4Wu4*>>jamzKRVL1vJz+v=b2JWPwh!H`(I1PPFF*Em3D!wd{`bboKH2Fs9XkfepoNN9eGa@1k` zH5w_SQ4X`q%=)L>;-_|0wjuKWq04BNH%50_A^UZdD{tslefO1ejBc54=OJ10#Vv$Z=J59+_Cyb-FeIcQ~73-oS z1)UWgV@ZY`ve~uR8REl@5<=a}WA8G%S?25~h8hjr$x&zRoDBAtR$K z5Orp4scwurdYGA8*NHk+I#hl!KE^;k4kSHlupfF}q!l+t<5d}#?JtD3pF}+SyYG{!V`o)rx zqJ2b6peL1dbDf|XoKB;IQA&_S+6IZATmvN%!ej%}hg0_aYImA;K7iLs21=1vyp>En>(yVgNlK0Q>-!z&7S5PI=_h6iz)w3`AVW zIXK5}=M~Pbx?rV(6%@B_sao`TplmxY8WqPn-P8 z;HC+gD4ncO&NQEVYVH{C5@TZUea7-gw%sS)=oJe~o(77c-FPFfl(`HS{!&b@={fBg LD*$sbR^Sx?joR+} literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a785017319b7cd9e5ecb9e82e0e74a23a8dffd81 GIT binary patch literal 15344 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 O{zU+js(11N0001iX$t26 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9626e562db47bc03174a9a8cee730bb78ebbd50c GIT binary patch literal 4452 zcmV-q5u5IJPew8T0RR9101;#W761SM03rMU01);70RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c891195b6cdbbb6638797ba269d0f68eff1cd994 GIT binary patch literal 45184 zcmV)1K+V5*Pew8T0RR910I+}n761SM0U?Y40I&xD0RR9100000000000000000000 z0000QgIF8IP#lLwKS)+VQimG`U_Vn-K~#ZCCoTYk9teSc37-Zpeh~}`fx#Ssss#&# z5CAZN-#P&{0we>790VW*j1mVR424cxVG?nGO$WYPOSd5al-Vr%rr%Pa+&;qHswO80 z`W+R)#u<2Qj@sn^|E#1kh9=b~EdbMb-FK4M=@eBf^rDe8vBoNB)~g+@9iF!N z?;Xd{iiu(*M$|B>7tUCiiHe04tNwqL;dEgv)s>OJ4bN}$|D1Dy8(cyV5t+_H#X`iq zDxn|>2B3&y<CKrNY z?0@&fw0*Hq6w_$YwV75bl_3<9P#8+36cTTTe>eN@1lpnQjEFsjXKO0Iy9uGiEP(`w zAX?0VR-i(Cv>ma|6;Y08&i|Q}^IQ^=;Pq$r&H1Xbr0=_U&3T2kK#8B&?p*51-L*_- zKcSNuWt3F_NDl};2M8P>6;+zj7ofg59=_l2fBP$2zzH{(=$5H-XI{HZg^%xIq<4OAcXwv~yevrr3_PHKQwke^Z59}bu@el?rBT}q zT(|-yx+T&8qp+En;AZsJ@6KArMfcWs{eOLPwfozRSuJyw+y(i%^KhnwHF@1{U?v$n zwh$mddZtf*ncrQ>F`^Uz8E6PwH5#v_x7yI{q%F%K z29yCw1RBus0=UR96Osu){(Dok_J1r%0ghZrw&}~fNM8zl2)Ry0z5l(x`1}9If{TSf z0a(%kLCFV@mT#AIARy@s5cCOz!cdehg$zKE4vD@LRC@YLozKntgAv$^%~XU zt3iXBHLF#dI&|Fiit7-sz0rWl`=@Elu?51*LWEeu%LoAI4?S$za903tfdODmXx}Ic zfj6_nw4RW}_sij$mBx}G1@SKI$rj#qTM z=#*>qMtdSmaCP{L000I6pf7;^j~{M#{AVBU`SD(#?)mwi-@eQ>8}S#%um0)py|*8} zbN!un-uI&4rs2_t>j#cJeE*}{4zD?U!;$?@9eQ@{v-_WW`o;TRzUh_zg_~YA)mvY? z<@F73KKl-BSx(^X#(3cEncEbtkEiFI#>~RL#Vw0_mI5Wx^{VY_he!6nGJD*PI}61D zfXL1U0mAtY_&}KTo*e~fD0^c|W73J%kT+aw){)Mc{ZAcSiv*~m`eXi` zC#O9RAmq=k0{{RnE&u^QWu*f8idQA_z*-stp~d0n*>q3)YZT4uk*WqH*VwRu7u^aY*yG3>Yr~dx>$M*)Wf=% zgV`K@@++l+%B3PoH2+`rbTj0{UX2#8k={Fr_=;R~fVUJJa>A0$++O8h) zl|Pb3&~OvHGGrd-?Cc!DlqMw+aS?SkS^09BxqttY3om{)kI8Hu;v5VCCXIOM zCc>zFb|`-k02*Hc2-9chM{zSTE+5^`EmD*Hv(s`P(g)Pq#JJiPASSczwBd^ojC6Xb z0g}?g<8dVY>9dh4Bbial@(yZ^48YDwn;A1 zTR=u0=xiI_qcL(c0Ml3U2iehUkEv(daAog3cY$9eFKp3Jk_BC zu7g|aApitnTIZyQ2d6wP1YjAG9FE7y<}MS#Tv4;vcDV_~xRr2|)#a15A+lKg5~MNmrE46!bYT(uL9Q84!fGomc23Ds~AoDu6{#J8Tfq`sN!=?jy+du~T7TbSAHDg(;B2@zj!z$b@|h!h&89%zcRf@HBfzA}gadeJ!Z`@C%!}hg&h;3nNY5aP^t(5CMG1EEC-N;fH{OJAEK1WqL7vkN`GP> zVpJyW1Y}sODEplH_#FT5)97QaeY?A+VuY7W##mPbz!kvDjfmEq$Ko1oXz5Fl=r0dn zr%=uO+x+?Exe>Q9{r>Hdm7J>Q*`*M5zTW?Wf#G+`cSa-9OJ-*;ZaFzS@t%o5c+GAV z-d65>@Dv=~weq}&HW~LnK!-mTw^lkN&+l)&-okH`SB7uA8?GxCxM5pSB zHU8EjCzhoQ<#uS&qt;Y1w0CizufHYwWe09J-uvOKT5|b8aPJ?WUY(V7#<#=CIf{N@ zgnmJr;GeS->$}_U=XWVoq9d^!05)=evTlzpqPRT&*WIaLBM9$Fw^4IIGkBvmJ4Zg)SY=Mayu80HzpShV-t})#6WkhktCyb=0w(}MKxFi~YhgfwJWV%9 zJ^-8z^PUY#-?UThYl{k3H6HYj4)3zxd_$l|*7`5XZ2RId>rLG^mjBJ5ghj=%TQm6< z$FD;{HA($Y<2BqUr0{Hs^TIlj4c2R|+!=uti_gqH>xL(KBZfqlq zxV4mCc9HEcin9>7hq(I@m!N-CaJD-Biu`>mya(Kr1>Q|p-Q#>s_iIDijeRGKeh}OW z_`a?z|Nj5a(KxR}@wR7pIrqzc^yLLWfKWVV7zA*RV4(Fe97-%k5|Hd@>{WtF*Ui@(^4Ucwr=@!Z5XDZNz=&mddA*1%)}@DvhnjMhCEE$^DM<)XHob> zfOn;JzGR3H98$-|P()IOk|YCxu}Pc&O%qN!5(Rdw6KT?87Tlve2xXxsY9P!PwxuFy zVY|Zi<-mbBqqsxm;7BeUE9qoP;K4=j>pc;9kB~ndQPZ{ekz_!G`XIzd5q%QDXJLj#F(Q&tp}q;o4Bv%* z$@$%fF|P>KnEXY`KRN%8RpHAZhh*=p*thk@!EsS(iX+xnSKOE~M2Kgq`e;*#8!HD| z$d0SplfkA;es`L}sNF}wgTA%=3fqohw{@^Tb8oa?$zkrhzTj>EY*0pr@sZQfAEWvT zqR_joE4@eb{%8dsTJ6UXzFMjH%PAcdF*8?!(@0dC zN(rvQe~Pmlj1VV27~x=u{Wu>w>}tr}tx0gqVoOOYC@QO{s%dCx>*(s~n-Z6nlSeA0 zMiD1oqGUO8dCGhRiWDoEt5AveJtP@3efEx@WE%JzWU~;3BUaI$KTCn1JSIx z3zrD5CyVR46V7>^m@27jRCqc{!Y$k|Aap0WoWaT{N;s?AG|0PEeDJkj34evRPNd?{ zoCud?sW^9KTh_4|0DINnxRKx{X91%>b9oY;hG$Eji@fNQa055o03hT`o!}{C@Csp} zV+ypixA(bluxR+5hL20*^nYkU!}<8NM!nds!V}jqN+sS49xan9hz%A0#C!UjGlA7FuM)r3IcXz1&$_-tSO|UTXH%J0J-G5Vb(m5 zden8aVu*5Tq&Rn>3NgFFZytyl{zLQM8kP!$t|~V4SYl0{iaRVmrayQlI&zm9HEPsc ztAddo69p4vf)d{hcSxnAVY;Q%j^vx^qWZHEiuwf!-3QG_D*M+&scN%*xb~n5QQwD9 z!$FduU#6CWHMSo5osYL2Fn%B_g>B|=4xK_^VqV*W;d>&OeG~wsJK{f>VVcsAzH;&a z27TFNmIyDhK8X1F1pKaK)9xgLv!yJ$&Al~gs1*wDX7-8j#h*yZXrzfnGj|w(d=3|~ zo$K=%i#2niW@rT&%8swgy|oB)huIqP0Ud3yv2EuaKdMsPY4eBpx*V!`Igd+pPL%z) z9Cg*pF=-Z(86w}8XY(X3;6?m;9tMEs@(fzlJI(BshL+~W=PnY4--msfthkGuKkQ;* zsx2#-twlk?4$f031{7Cxxi*A`L@pwW6nx06c@b??rSY3Db5wjMjEei*$16KUh^qcx z7y9@}(T|m)kB$`mODX!)NYR%a)%%o(&BrlzJ%tWNzMXaQAD@;saFv>RmD8a6T%-TRgv&8qYl@#WA>?}K`Xk7ZZ24U~?DrtXi zPQT4lCWm>r&rY}E*|aG!vcngD!ig+VEiY?y)C}kHIv*}04;A*s$j;4`9`OFyl+PY1 zG1^U%S1>9DDk`>?i-K7Yeg+xh=RgHrQ&GDEKW~O?xprME+UZH(bNc3_FEwN5P66I3 z5+;Ms;P#?eYFGi;6Z*s0-=7q_Mu!se?a#DaTxpsF5)cOydPc)u`p(c^;PY}KZ_GCn zIR2E&(65MSpS+S>7(&HQ#SDDnb>o!xyvMFV=6fC2hV=J0coC95s;fN2MA49sI&B;L zUgZXOd@}W2KI^m{lg3~W4F)BF9F1lust9fD&NZC?+r}kEqYBeC>G6mJcY3+Wkf_zqa?4FO+;+!Z_uTiuLwP0{K`Vc!(N-I=MV5a7 z(RB&{+-RjCGj^w|a_utBN)pg~0|c-+H5$L~%U+QJRdn`vN+f(p`H~S$f8Ls&_Iq7F z5iuMwega5g43e($strP1KVG$m(4JYDUfCSz8WR(O z4dmbaB1y;nXR9uaD&<>axhMhL*ohUYz^o7=J4t#Z*ij?(=lWBMVv8?G0_Rkx|pO*Om(=6`(l;&SmHJ_hXat}C3(q=SJs#<7t}4=QOD!^gbk&`1GIPt zQB|w8ky%?u>+duI%3D+1cWFv&l;fXpeG(XfKI-tQQZ?(mcA!2V&RZ40_aVIEx6o%8 zhHjw9|9i0J6MZd;!PMa6TY@JolljxZa~bm`3z7xtapKG)C*oGVKRvvrTUV}I&i``f zmsRJL!fOH70&i`3RR50eiw(~Pym5}I?%VV5_#}Ee??|nEA5rLpMBl`zI$Q(1z8Bbu=9nRUfTciOCI{f!;)_3w!Y={C*Qc? z=>5k`J9r#*MvkvOVb^{>HxVz)vyIJ06zgPm;lt@0vQ9R?yl?rDm374vtJ_y6DyY}% zO{(kHb^!n~8w4ld*Lm_$TQq`?4gY5y4AT( zK6{bH*PL6fS1MDIFkT$Q3jSf2NdU(IqPN2v=jQa18)o1o*N=NIxo(u2*XCDBco-6+ z>~5r9a&@A2T;)k@xl+TU06?Ovfmaj_7ruE*CRabie)uNo|2VyNWAj1w;Z$GZf@SqQ zZSm8`dxz#2o2&?=-!B0X_32NAq0&zOJM4sa=H>`tmk;=YAIul??FB5YtaY@{?rl3D z23;1<>u~TEe0=apx}Yn1Mqj^w`To_19=b!|dv@wi*y%k!;fsdztohG;qLD)8zX?34 zh<(rXS}*nY{mP3s000R83JCvL&8(ENw}&pXT0`3BvzQ2`hCW8GqxaCe=`Hj|x`ocB zW9cY-52qQL1yxf+XMU47#`42DXZS=c5Km3$$%(wy*3jI=aiBA@-#h@nRkY;9E@JU$l|AazAPWKh7?<9rL0MS~pXzciExv zc$>X)%BBqIL*0SUK#ij=P}TOj-~g6=+2fXJw#%ofZO$^uy^HR)qNlv(q8e>B-}FhZ zblT*IQ?BMgMEtwGZM3aLVUr!ZdR(=-DSNy;Q|iTHvr4fFwTbNL{B7=b)N7xjV^ouF z+w60?T4BB<{`R*PvutKsib@dp{~wP>Z(LfYNR5sRCx-?H68(MqvwL~Pi0KoL#G zZ&lk5c~DO&px>3ogE1g59c)5$2vJWaz@*xX2^`jDj7fO6zT5L<2@}pU%8o6|z+RIA zh_@Ytr}v?_S1Ff4J(TOAEW5K~&WLInf!rMW6~_z^97^$Sjb5Q-E3_7gbg#vaYNX2#5#1*)MW;dA*lb^VV3A;OOsYj8$#W3TiV^NKxd zvM_h=o#sHNx&3(#K_fS3iMjS|b4Khr*T}aRYB0HBCiUd|d$e11qH)K*ZAl))6N2U7 z4L>7}q*#X8m*&&KSYJK=%nt!}mq~bF*r(=Zy<20#aZ0CjaO!FBndjEk@Abtm-h=eG^=qNP9Uwdt#~YJ;jH~Y_ZIm&x|t!hda1j>(5XIktMc& z04=WIO;=UtG8!QGCSqR`_v=|)H@N9ty?zmSnN-&E9lk;ibeSwm_p6v^F(oN4{8*Q+ zEhgz2>ml?HNNdnpiH(G`_r-0;7Zd4xoD~aVokGYbDflXbLZ&=xTIv>Q7(EP~$FxL&q!GjMz34#{j{Gy3`37K47 z+ASwPFtQ@_K?j`y6Y|%(2d&}lz=1uWQvAjuy{bo3nJyLDR~xFqBo4ng3IKy#T>=mH z_6aJd9R3`ccI=T$kVR!K_Rs6H9($4RcRiAj1vR5?DQn%d`)s3aZme(3;3WdxGEw ziUZFuz6Wg3AqjN!t3res>D|yX@2T-Y3f3U5Q)9yAnm_?@?W;|1#k6)hN(-@G)S_om z;@j{A6h(NPm%0y=-RppgNB=;yaigKj@cdL(cKzGGS&#a}(@8@(1-Uv@9T~VKpnxy< z<#lWU7@$x{PpWf~;jKEzjwW|LQdh>AUvxo2_+6sLICE5SK`Dd+#Y-4(>Odxv$t9FD zRdDzYq>jExf8^=urSp9qa|vCpHktzf&z%66VoCV{VM(9^|l*-=>j|G{MgYB5; z3To4diue5G#aSYMeQ!;Cg8fFgqVjBU_7%wG%|%EEf@M;F+XFXqRa0^n?0jCnL=IHS zYH@D0PGb&Ie6+D$t(k7cDR{aeJF(X`Yny@rbqi!i_965(%$XxON8+{Wn7{3*qew(O zP-VEvZ!H{=4D0;P&LRvcU&v|?z+V_U=he!OQd_9(k=$Sng5)49OjhM(7P56EKlS4+ z-uLy=Ts^HQD|^#h`UD=*`exnB}`L5>kCg9JFLN#|=+a5RADXYWk}z{RC_U!wAwE++2}TyZJB zBuPHO@JmxC=A`;@0EJC({#KX!COoczVc3dgJ1e-0qQHaYF?}XKD9eB(8CtM8V zfkA{4Pv_fD-;jCE5P1qT&#}Et!={U8Vr?^e8OB7+`{DIdw|hAaD-?+<@_XW1WSHGJ zmMC_lw#=R<8kr?!f?X(9R0)Z!cWfMnu{092FZ1X`AqVz{@ieiCsqkCMPt)A9d1QK~ z`rOmLYmNi@o!>0w+b3g!AE<`Ev^wzT`R1%rMP&P)F6oA78uPU}WxgJpO^@=tOxKwY zc0)?}ZmV3NlkLV0y4yE&f1iGjj3XQB+CtE+y%+^niJ4}sHl?J5@G+*UTB5F)sXdUc z>&E0PrA-Gnu_msQzBP34M@V@xPE8_^}1<+tWNbUDFtBS6v$1@dsf8K^B(#|b{qH_OoJ>^0}iY1t+X zHNptvTx-tcum`8K9>^+(YBuXG1(y<6jIQ_?dERNq$G&com`cE&-`;-bLA_R&DH){O zE;x{=;LMO~TQREL|L-f5dA~ragumt(l)`VnrOwVTF3Fekzhm|5Ec}+|nB%X%8d@iI zXjJWD?XA$JN+`jkAQHjJdu=a&EDXZpSA__wW8MK@eGlvO<862K8;_#^beY z{A|)$q&-R!^Z=%+OkdhiZo?arZVn;FAPk`#00Gn0p!ss>m={TmDr`M}-(yXA7_abx z`Ejs{?lB@H?ddb9egwIveoKtIuDr+rCx;BhezOSswewdo4zJ$jzR9j|1QA?rum>Kg zp&ZwgsA-|7P$29ozz+K)JJoat&_{rdtZ(=2_w5n^5o9|f;g$yM7V-dsq``LD@?O6P zl~E(NOFkZ|-VMnFpKApy((uc2q4J8Pq{7`U9bl+BMfq?yhEpPjrbKI5n!86V@pW=1 zjfuA4X^N~yyb5qX4tVWUrxiI=pQ#?`O^Fh%*MQB#5-AN~utIhqJ2v^b%Lzu!f&AlA zSm0xep$wscd)xPQ!VaFv#0lS(n!Tmk<0YiEcbg2x>2Q?9A|w?%16;mg1v|T2=u`4g z2SiXPkR5ry3l@q3q*8Vhdp;OKQKe|Mm9!;{I54tF(np=ft2Hob15z%S0x2B=ylG6s zT=B_)$QpZ|Q=6t)>g8B=9opUv)FIEs8@Mx}Or!ZnjMm1rXzA8uB0DX_0_hH(g5~o{ zu&>$`3twuV4#h$u>(0N)dN_4#m{8uAL6IABU*YjRBnNtdvua~L40K{BV3)7fe#$6Z z+Hp@E8}Q_m+Ar558=SLY92oix4s;`iMGT`9xEupj#jl-!GMZg>yB9KQ4^X2Sqgd?_ zfA{Ff5D%%}frApMuz*`YyWrG}8t|%E)A5Us2pi^BViU2z)h%ySIB!sdxOd~kk)=lD}=8(M= zab59XwbGj{Pl18;t3}k2BF(Y~J8VOD=Jy3i#;l=Gb%+NXT0t3SjWCFi5!V+YuLD_Q z@1r=a?0Lv$`!tcj*}6kh8hRG8sab_?n(4y5JT)yX5YoyOrb@J>k2G7*{09l2x9geu zHjT}n|L7+m>21ICq(!n&Nafe~hA7A~OGRg60zIzuO)ck}9HmM!Try#y*`I7Uz2s8UBPXptl5djl_fqLFK^hjl7#(%g88+SRbL+Z1|K1BIJe?9| zFH3WD#*;vVn2Qxp(GJ{Q(^}1uz$c9+G9C~iBuudsMzL5}3l$&(On^%`S~E;A6*Hz2 z>zH%@rz}nW)5&HVM)s1(_MU4~-3kBU4FQcqr|O9cHE5p2cz_{UYGi77T8&^Kl!>dw zZ3`k+eS)m-B&j%%nYdVguwKp1>>IKWcns<2W{(m}PmAp8A|dF4G_LZrNXPF;=)}Ot z!vsCn<`$S2z^FHtni7_(4f}ZYd`CTX#RAzlo4FL^i;O>mgJ_c@I(ULBPxA>s|8qUZm-7wWuEgF_D9N|a1Z>oh3ALe7uGIf#ykJck!T%f+s zRsm|th5PUm3q?q(mbB*SC#i#$IQtrXy|d$Ip&MJw3BkR(naWl~^VCn9)5$vsgtwTu z8#v}r#f#9G(lw|ltNKdKb7^0mu&@V$Y(WY%lXE@9Ibuj6_7n)WB5q$+f~__t_@YjX zTezqM(zQ0CPNrtM=r1!1uKuB* zfNO$v~x1ld{f1L=47hvKq z6`JWb)te``@I)E!&IQxYwK&NN?Rp&V-6Lc09_ij)@v$<~fVp5#%Qrk+@=w3?d^%0f zoX4>-K^p$k!<02%e`W?Asu!R7PtF^mO_=>B!M88fs=5!q{?caj1{fC?jd*tTB*6ge zBNO-0`^uF=*NEbtyHJq@aWY|d5Z?DFN}Eg`I#V)FwM!DRO893#eEx_L``nAqFNmSZ z0G~Y$K}V9%$G= zp`?oZu2vZ{*sj|$qi`9@w#-}gS(EEI$8aanFn-T7D@Kt9`mLOapkr+D4GqYkF#@ks(aR=EkxB5xkI8?!4rfMj5mMy=~{FGN`3 ziv>gSwkbJGUuRAR>q4N+h@Y3ANUX(49Hi5(2YX9W;bLcFh$c<48nn#3eCI>~qI{MK zuo$?p>Es2z39+Crm$sS3$MBi`jg`~PdzXp`>B1(Gm}ptACBQ1QRMmczew|l!lv1WG z)(#tR+dgl~Wqe-H4qfO9Gk*o%WyYNnOT2L2#8VkXQ;cAbsHtQ! z@G}XxGK-gS>1ow7Gsk1wLs#Wb5)*%VhczTL4&E(6)>|U?@*?D?WC0@KmS5ly#=&Qfpg#*#SZ*b z=*s?Nd75VUg){!bLd46!r`h5@8-k-i&gJA}C=}qK2qdXl!~T z5@YpF>kj3dxD0(;;Jv*Xr+Rj3>!!1^TXgz|OVYq$NS`cLGrFO27sbFUmDXyb8H!M+ zl`&0ot^#^`_T`V6)5r>!-Li93HJfbMS<~9-aNK)3E$wYhEu?|I6j3+9#_{3iY8?rZ zfjfiJ%_Up|+>x1^Z>}7IHSk;m{{~UV5tL2O3g=?zCxOe$JO`XG7-cU>>*PpqrQ_IE z+i6At`EVrF*pfVq39kc|MPq5vksup-vuGP|Ho;^peW_HKZ}{kIcHn>B1M#8XA9=-K z!;!eRAD4X0b2H&xkH7Wi{+#uf-my=nS$0&{uKl6`9JX<%gHGZCLZ5$Q%Dap=Aptm? zu4+pj#JJ~K*m!HbArIn!C5c)cELfUbZYr7^fS-i(&H%;+MRt z{oiXQIwCzTdoIKvb1Jzm+TG!#Z87qq3$wHZJlY^S5qOhZLvegh^b}tIOukKyd(GozQ@gbH)M(#7q>JMH=k`T= z=dOLaY64Zm^YzN>q=zFdUD~ccohX17c(K}W>8>pTr>beru|g*7w6LcL8cvM0HyiRH z6Lw~?HhBL@^v_&;HL(k6;c2)0ILAmdOx$^OgAi^4B&LEEC zAi|AqgAov6wb3#V^yvXX3wY9R_jdjrFL%J_O`M*HCYRF!G02=oX^g3_a?A*(t#(}Lc6L)*aW6xZrTgezaVKzrli?Hv%u%SmsStrl_+9hjb;?f^CEe!d?@c}P>n9hyHAmnC z{I+@jb<&R%so(w0DpJZ7uBCg?GzaOiLiQeWi*dkR*TY~S3rU=cHaK({giD@w275fa z&0I(at;|GnOXnG6Vu^J-O4E1vxkO|GZ91Erke2HX;qOg|| z#s^f5$bwDeYxhg;YSPF307t$Q%>5=mLi4#&;d<`yoWO$c0Cq?X*n{5anz(PrW5E_K z$9rh>uZPb4|CzVyNqE--s7CpL=|iyb@7UwQ5%JT-*KC8F?RQ6Fi2X<8e6sKEzlr^U z;^o7=oRQs;@cgbr&Re(H*j{K+`vq=jZ z|DSwi)>e0}PCV}>-0{daXLW{q=Og-qGu$xZF7*T#ZJmDUUFIxoMk~$ydx_?I!-?Up zT9XZOP-`A-lNi86%Wj_Cp$h**kzAYx3im9$RHmrfLI+; z8WzEIi@i<%o_XqL-U8}J*T-6)34AITr3E5y%RgroC4WB}sN3keX9AwS-cPThSnTzr z=}~n%W=6*$44a;g`|S2_Ta6`f|BtDsm(?*6PI z#I?@o{Rg0zn%W-VcF|)i_ol0*CA2f?h25RIbGa|mZc#_`zh|EOnKzI8?dq}iDZi&s z)Xo_GjAuFoo``YD@xZ!6cc2AlcP>Q z%@N?L+NDMHs#*k_(aY`Kk8n2M1#n7I>xZ&jkP7`8Wjn!_ zl+e~M9+X{(5komRo9^w#9%pG+0m~Gww`F&RRsaedRq5BQg_kV}?s!%c-t~;bCXBEN z35LCNZ%o@8a)D!?&krpjKYC-d;cejn)%Mm!%JDW;6*n}(sYiM=Ytt+WwBiX-eCfy| zD}{UJrxpcr7j(WRHa+r-zSWCU+~lS$9I*F zEZ_9|n3{KIN?-*oo`(v)+=I`IE50=K)ir0H{r}9UzbmT21cO)BJFd~qB#64C+5s;{ti>9xLEVBt5rd^-nkCo*jz)KY=JN= zFv96l`Vq?F_+u+FzbaeY)$p{1?F-nPx;&;xW)IT7T-OSF&GU7DU6Q|oH#GHBQ5lm)A#$Y zumzM*D9gVyI&zL}P0BYwRe`c2QzORyb15T993&dcj%!WaSkz?YSj?vFtMu&)JY)UIQ$ia6ypVV%S!@Wm>MIlWh*qA< z@%1rjKFJ<<`68DU{9MP@SNn5j5f1joxQfP_+hQvw3K&QL`?7hPcs$~3^Pg5ltTOwF z!IPI{4yXgosMUxJ6~v>Gi)*Kt-G-ucbC8aNdZ98^vl#S}Z;Sxc-vT#f2Ek3Mcwk(O zWp!laJjaAM(5XeXN%{y%|D(4C?{V}#x;!lw5@B72pf#mc3Jojg-ey)IvfE%g&we=c zh!Okji_gystKt3_SsY#U0HgIdz(4k@z@UI8q9Zx zhAuFzhzT9(m=@no4r%Dcn}aXlSpnLjbS$L7>NHA=s{P8Q7DcQm@6>4139|xnVO=_I zoo^pOA9(!M;ET9%jkbuvgPGbKY)-5+DA|!iZp-;zSJkQB$9T*IG76Q=H5Na${m?bO z3)$dorD{3+2HE5TGCH5waqt??iL7w8LU|zk+5`0|X1X)pQJb3&8L+`v+Mm!*V0^~O zUGdemmT^Ii*{;C^zc6{ZI_{hQpF8NcPxr-vX}R(7{vKH?73?qO?g%~07V^wOxovgB z$VHY=H{gzXU4AI5caAsG>9*#>H)EvJeH9r7=-1VD5c*#;C+gSql;b&_qyjlaznW zQMC9I?*3V>93`KTT?+MS(G8)0-#=WSGBO&3$EbP3BlbPvSfGZBh4Oi1xCVUHbXT-h z-x!R|8FrUs1`@o#xBE<)lp`!9#Pt=aeTUuPI+M2sY%-rk2Pp7oCIOfRVtY^v2QPjdBR)xTt&pB+`7{@S8V$F)`c6}9 zh=-~TS)G!8oZ5Hirt@-IILjaXwYmx$DdirLq%U~Tx!G%5;pI(eg^8X!78dM_Loq4D zC;ckBH>6(ln;UndFow0fEB@p_B#S94bx4yOs{yx}CJ1ICw+*mwb>d$yaOOh6!_4AL zR@Vn70wST0UE5zY{N9!5|7gGRku_}(yr8@CF+WpYoWCv#adh1X6}W1j&IHPo82fGP z$sr=i!M(Z_2|^Xg;L}Ucz`uTrNkcwmm6!Wd{Rv;68=?9IUr-9J*}15LIff%@?h5PV zukl9)SMDXdP|R=#RyWQ!$X^qBTJE`6AGt2ev$lnFZr-)dHOpV)7^E6&28I{)$FTX4sg-Rrd3?{(ZDRp(`(v8e8K*rbiN zM2$m4nCYG@llc1pnA7HGXiDqh()?Z(j0`T_#W_)QX9re0Auz~udP|}QL;XU`q3~=? zr^`61r2r=M+JYLImUc9MZ@#$aAd1LNXfM@|roHTH@6yn9w2aT^l${DWtCj0Az=kMp zIfWaGXI7->6`$qH`t_Cyrkx|LG=aH+x!{R`aV?2(`nsvL> zc!&da3Am<$MGjVtNS3E~%KUG}748nB{f;>27gqV(RW3L7l51*@+=!M2aydm@B(-II zyvBHXn8wEDVd7a+p`02ToD-yg?Y{tvG~_>89m{!YlGJ@G!Q6o4*RZTOa+ zwjaQ*Gp|3OBrwdMr^XgKHzlkvtF&`3t#%z*5*Wc7o1Rn|Z2Ci%j7iHDb?{5Kd{IP7 zl5Djm6QI3+=H6mJQs(M#m^sN&Yt9Bm@1K5_1KgbzPH=kU6KCTgq8KMQ{;q!i9jpE? zB|?@)Vn#fPt7&P@KC#-IZ`$Ggq^hFSFb&*B`U$7U$@@Ul~sZU`IxHbN$`rj@*ab&)8s^#!Dii% zm%K|T`-!*W!k5M)-u3XF1_$|u6V)Cm2)44T7C*L&Jlv4%we4zR8G-qjd7#Bo`oGm%LKit=wc&@}RkV5FlmU`Q^e0=#3(19)%HttNl$?X*` zUj19L{nP@`j?UW~clW1!xA6G&zoawT>7&5<2dZ7y1a5*V?KGY7c>pH)V zq{%vSltZZ*nc^KeM-Vx&o!Y!O=#|^RjM=NeH%75*&c=m=S9v2Y-sRHxXuHgxYaPoh z!Is8>FEvfBCe?q!ixuY;1bR>CBFXq%LSGNR2B}fNrk~ZFrny2Vfx^%FA1`fiNkDzQ zkg>h&*L=U^H3)28?uO5g-uNhO2DPBI4&zP5=lov9w6p5#`6nOMZ`=^?s{wcR@Q);{ z>~4gOzg~q(y#H&yg8r=pq|AJ&|H@@u4WgrJ9l15Ko#$tvNrph2v)Ug##WNxu>Zu^k zOP3$ck{H+xN~0^wf^e|bP}!+%`~R7j)SBR|$TLC?=CKuSju{)ce~?g0;;CBXL|3Sl z?A>jC@SvL(CICY~yuSm6450?PNMSKR=zTV zX&u@a+ zcRB*%VMAtdFBcA`U$_%vKyh`@+QP$qLZxHZ@u&i zlLlV-j@UXlef^LOpeF+U;2%5Rx)lj_xc!mZ7H8_k%#Ei8ipP#1-lfOGKvm8Mx6fZ@ z*pV4dmdf@iE)c3Pkfr6}^IL7;^c+lHh+KC}VWyf?rb?p~QjuHl?9_Bo7;m-6t+BcC z|12cyv&x1N4$JOaKLRpscY$s!fLDOyE60stbT7njVEq9DqrWDj9S(c8P#EfO?mst7%pFHEwB2dylgl% z2Wc#5+|oqzMR}{Vhd91=97o%`-#_wbU;%g=lP%y7pId{-1~t?CXBHMymvvwN*jc^> zil9e_S}z$S*xVK8DtDzwLyE%C*6<~JNUfIH9^WY~xbtW_>ao+NgN|K~VaV5cg80jh z(?cDnh$d%qDWYxnI$95J^NuO*rkCR?`u25|W*(H2n>sFg|9GGj;o$|MrQA<_E2&)@oq zKUC@ehN3;cl^b?G1}muwL!9HoOPs8GlM{)}>@gNtRAJZb6#Px~h8%j%V6nXD>57Zp zS+p8}V2?)(`eB7wGRv?x$mFC*b4r>mRxRE<47__MfEi2#cU$PgEFN1?Gd)jV3SohQ zVv^~#ZEp~WJ2wLJ1BRx(bTxrjIqPgjvD&YxCGrrJg-SnUF0XpHzU1I=9@3?++cQ9M zNqsqrmY6|YPS*6C@o3&sr4ft_G^nimyJK%NYm~niruLXU2eP1v3Xnaw6v1}L#>=)& zQF9+lH00m6am2&6q8b!zrl0Y7k!n!H%1n3r0;joVs7JnH=8n*_m6x{#U#4Uy)i&l9 zA_}a@V6??`kSK2h=nwL`xHg1?CR1KdY}-oA@`tP(IHecPH!v=JTXuJ@|02x4Y(|Qq&}j*gAF# zrrNzvp|e~T&uDvP`odME8!2F0E@4bMMexLv?@34!BeA(ny-8T0gA#cr*SCJFdKV{Y4=UI?4f7Yz&dCA7E4 zHLJ~)IoYi5%P08i^t9M8=BE8eZn^h-Zqu|y4b|{mMsL6Hq(CKVkc4Lr--J+`&q;8B zVu||tKfSa3uwV!5gRi(Zo{0TI*lGIqrtmxQs)TwYeHm`D`=5emDK=M@{(AehQ&ldc zgf*4S5OtEIs&boE1rlJF=}jg*BqNPGqc3n|II%?*aWK&RFz_7Rj37IUqV$-}U!_CT znJ{_AL2XFgpsJuLE;p8&vQ#s;pRGfDSYtJf1dOaiqG?&mO34Ws<~j+S|EWp1`3U%_ zYU&Hx5kS^e9a#}+5fxf9Dw}=Vaa{W$ua=QFpDx~x$>30qbS!+15+#yuz_LPuu-042 zDMox$>oCr8sjWxifp}f&QY|hyn_mqh*V~R9=9*whJwKztyBr#D(*ShQFpX9K1BOjt z6*JoLs>ZDrK2pHis?AsE*StRyf4i^r|+S#(L7)a)!7S=utVlb}75ft`2hncz9UK3crTSeoU^PEpLI&2ssoXcC-L2FJ>)^wHF*@E|ck6dSza9j;Fo zR!#71n>j`Pv~px%ul;Y^csms0D3Nv2zYRv@S^GwHoWM*mIW?UuB8P<2 z3bs!%IgkjgnQ0DypHY@kJ`6-9=CH~MvLcR7evv`S-}f9bk6@Riz%K`}KvF!nW|$$D zpl|X*^uQ@;ar28YCAU5r73J3-Lz*24SJRcy2#-~p52=Noc4=SIv>kDhKrEycrLPEeTj2EKkW+{;wDYa!XKVyfMh5)zoRx zD6xhwk=+M<9Cd)6C!2r^>jl?>KVZE_SC7y<=0e4Z$@b$!Ju<<`Qt3X$MN%0St1Z4U z-L*<^9mX5p$ZS&3M4mj2)$b8NdbJV26exp2e(9z{1qYU3!6<0ZhlS_UTGx|vN3MwMh>O|`;&xqU+1*YK7D5cgP%tO^o^Hb*faIT4^qHtBdKVKD%@% z!QY&?J0GNTJ+brXRiSRFRdmJkMYk})kdM{~Mb8pO(78O%D!1FZV7gAWG8!6qV!!{x zR<62aVV1*(ab!7ZW1c~L2@I#B!M^GU5T!m6k-y2>_{uvi3{FTS<+AFe%Ri3vsESB` zS)vY+K$``2V1Dn8$G^tvW551&9GeUshqdoKTm(0tdn-mP*L-pR!=hOlvOe+6Qf}zA zbum7{Wvy3x|KHsEk4vmb+I;&>;gUDRoC4&YN%^Sk956D*;rnbMF&FysR zbQKfiQ^``_Gnu|Z@P;r>s~8otO1Cd0)O26GEv|!D(5a~ODI7Oj*X%Pv@A^dJla;3^UeTNUOtRP)E;N=MZ(_i-@AgH3wfXo3t^*)j9R3@E%m64oP`)WdhmUsm zbtQV7G3Zp4)Ix#kpkd#`ox)AGBvGZ3vF0fK);ddw`33$gDa<=KBUB?9vQ|Zna=1gG zMAqePk@WMx_4`sMk|Vg!$H_C9ErLqXv6M*u`-W~q+GY{`!&5%?5eV)C)c$X`1p_L9 zJB5YeqIRMK5)rc+gc%?&B&+`!Zw00~qLN$MV=WK-z18#6-~X=syn&d7F9W+(WG`D48|-(_NRJMcIGpeGIOL4&x+E!BBt7(>>rL7 zv(&96#we?{N8WcSV#EQ^K_3^4Fvb*fEU?51JDhQ1J>jGi$2({hb~(_&u1M9$D$JBy z&tyk#we@f7Xviq)aU5oq{nb4n4-17#u>u?RDG|y`6&u-8+Uzh4S-b)FbvMp|bQMTRP+ zs~WjhS7?DwQKQ%E-xp>sXP3MHE6JLsnvtV|PV@~U*fs5=Nk7+RQpQGoUq=v(W)lYK z2o|g8Tcc}xiN%EJm2$U z&|iL<(h|fkK6!6z%iKe$BhgylP_M|dkX{jGN#E{M-nz%AZ*`TOa`7UUA=mKN_jtL7 z`Ee{F4`gbR`X}PVF91gl8A!ds=dfRaei0@3>j@;#hvk8c9x3-*a&w|Za&;V&o#;Et zL0V1OTfV;tM=Kow;UW1wd+}bK(DHV;G&B1Ecu+Fq%mcuqJ=Z0k;4@}wBP8N@i<&*C zPuaoT~<=HT2I=?=9YHS{QRz6h(6a?p@z|_<&z{^ZcQh-ear( z5K$?(lv5r3z~T<|hXOJeDOui)eb+t8PR&vqoq#+Q)Vy0XugFX@sH-+E9aZOc(r4nL zGDIneY5t{}M_0yZE$AuQxk7OQ6^S88ba|nz@4|YP<}gAu+{<3dF0&#Ef@1SlLPdpV zY~^90X_CXV-tBN7J}gl|AMV(=s@5A6K&}a`l$RGM5nj~$EAhHd` zGwJAv1po@raZjzq&7z!56~=!_4h$E^bTzlzBLY)>r6M8(uVNLmJkHetpWkc~UwWyx zna|Uwu36bo+Qb$J{ytHj<)BspF0O=0q%=n$pv*pLnp7HO0zqUE{#-Q{sWui5dJPgiE z#<&;-_%Q)1jfERTs9?sJ-LBnr;q~$9DLOexhdP(nt4bQN1^%J6Cqi&MuySmQ1Y-+g2G@flPc6oCs02x4arWRAU+MVT1{^=4N$jf< z2x0?s1WudQ72C-KGOw5k*;84!B(>S_nenI;ux>Jw@5^CtAT*D-M;<{1v^Wdh^Ge2b z2;M`rT%ySla3>ZC-@mciozzd?Z~O5w_qmKFuJUj+XETs#DBuptJxaCW(Ml>n6|jy_ z7LU}G8I{-s<&?QDr^%kU?!Z(@hMbC8b8CihpFl=w(bXYY7OE)(8?$dT#CBK-FP&X# zL6djT=Fz!AfI>KXG!vk@>4~k35nw|jgprKFvoqA7S`O<+%*e>PvEg!5AJh*IGpF~w z%!@>^TpJUp4*;fIE%RxA)aoz2FXRe_BQ1_@RKs*Q z+mCi%n5c!SuIpxObZ3XvA$5(?ZFo;x(LjbX!ts?zs9kd|@XbNH$lnv*$g&bfEszf! zGuA*wuD))0ITfR4lP#f#u_Q`uxO__04Mix5wcMwqLBc~reg)~9&M(HNWP^wiwZOH$ z5Q@nL3g?|_2UpEndms41o2fjD3-`u@OZpdhwJ!xz$Fc3D;)}|&xal~J`RL5kSFNiW z!#XCPCzv73y4~EyI=5bnEP}Ta5R6-D8YafP-+I%c-3|>sAPF#jL3zIb5VIcF(lpk; zD_t#}DAYF6eenvQb@~0L?#G$^@X4FC-i1JEr52ov(SoA_ay3yk7ap}Hmp7#{q=kFV z*7!dKi>WSSWaT>Gdah>xK{_MP>pF(rt0`YKvyG*s*RyTR^bH$^0`H2>Wvw43Gg$MC z2o@#%(+CLyN}PYO=&*?zpwi86b}D${Gs%*c$dA7e~uVpzBKX(gTL4`yHN;u9fbp{j2bG#X0`fzcK`#q#-D-6s5R#2t>LIEw-= z&~^>Rthh)4D+2pSbuFkC3{xmHbqEwrBF5B+koY!vyun(bKA%V6O{2SQJ>ky~b)+KP zKoJVPF>#$HH!4m&j=y1P*L)^~^1L0_)mx9Lsce>Yz$zy6lf@f(@`ai0p$>%K z3DZ;19}KG1agB6Y&JBZ9sRq5Ppvke~C`Ba@UjKLXXQzao*z)2@MMJ5E)~UL$9-s1K zC5)bku-V%Vcy;A@fc=#(UxG0EV1OJGw4gAqvPx$^zuT+x?@}P2LloyJKQRl0IM75$ z+-w6CstNZPrpJ#Xb`p|m9nbIDOufIa*-DoRg+eh6zKA1dO;WL#i>!q0xz)}AE;r>o z2-)(=GJNWF-$(3)Jmhx0rkIY3>{@=z&)tvdxzL!!rWbUML*bHnF=OVSCYbF-!pQ6! z>#n^9teFZS3aiPv^QRkQ_h~UHed-c7+u|OjcsRkX>j-Ljrk(NJw>e>YUEjXQ%Zs&I zPHh3q{SIc^hoOEH<7+vIgcmS}f)@k7q>{Um1mYWWQi^5u%iFa*Q>7$qJJYll=dC3k z>n=u5Am*~X-z-rtaXi`9_L^x(rq#; z@~dNe)pw7=1pv9*;KgQ07wiGir%*xaub!lL;vh|k_Xe%{Oq})JQB|p3F4VDn8|k}G zKV8rA^6{NJzL=!J=itk(dQ?2s_MFpiqDR-hdcS>hbO~$eM)FZop478Uu5|s< z!-o+2et3v1mR9K@IBE$NC0HQI_lMQ-#LdNuCAgl7Clt*JH+*)wgy|(sr~2F`anF$s zFfu^4-+R609fDd*^WSA4X031GH9Q_3`mfePRP?$xKx(m-Wlwz>2t8H+yp(ox)$M22 zy4m@*UK^v7aOK2972ti&ch-_#w9SEfjc#2fkQAU_`fR{Tl)_G|`93d@zTX*DDN;qo z$Iq)u;!s`F7p-3h_YG-KYS>Y;ynz`A`*JIKt(E%4*KoOWu4cI(#^>9CZ^z%O2mThn z(C$BKrKKXFvhkZ8>c|VB7sfw!(AE_6dAn_Vs!~61e!=N%;%po4V}H*90?dDwJp$lM zl%ZD`zzzRDI3h~miP^vej=)U#5~@PgXc;}g|VHRu{JI;czN?5JzNVbyQ!-?XA zaL(i9I1v}&4fqlKGO?8mA*0DL@)@P0^i&UZpG$MsaG6{;cZhq7`w?xX+vrEU6y9~- zn|u+!l<(q?^Dpzi=KoJ16ch?b0-3-i_&=U4eBJBNh6S%rLdGA4d-%vzl*%dd#pxMX6i*r5=|2=}vmE~sVmgXWN$Pt1FZA5#-Sj1Yy zLuGWHQRz{3D+9^}<+AdI@^$5>%Ab{gMiTkb{Oo*bWH73{peH(`@L-`e+8cd7W+3K= zdotcKO2)piHG1>;`I*1hN7v!Cy!Y?#j*F*O@!jrzS6gG!9>-nss!Qf_d!|v?5?fZlWZ3OP9ntUg%3I2Er%IFh1r!`U!d6KE1cDc zKH7%Rx%`CJt!Umq^+R%Vn=e%=k;q&0VgTW!1WxeC;b-t*5CwZ~3=*+NFZ4R_k~HdM z1G9lZJPs~J2E8tZAmf~N>Ztx^Xq>3u!ahbnUfNNO?m}#;EVSXv>wQz@Kd4rBcw{uc zTP8Ld{xY`%p>zpCtLQ;O=WVbqsSH1F+1G4@eNC$mI4_`+*ALtxmm>I}iykX*65aTs9ug4E0;%1|3}D4xa&9>fG|Uowt)D4-x{(;;dZP z2oR+$^k6e}!R2&BwyZUFt(DXHh|8BdxHoT^jZLL0!{(>W#}0P1Q^b z(Toj#aWI@%#*J~sNEI?H5>=KSZ1y|ld{z!iSgI^9SjfG?pj6G8E>CB!d*nN*@SNu9 z8}cCo%qv)cc}o+PzKRDujwEeB#)XBsaIp#$UOPZ`GAO{TX^nT)Ei#6KUW>4D81PPHw1+tBBpkiUcaVcMnWqX#y9QRQvW%YRjNtpwrPgJBvux8 zPc~;!?g&jKHr$y+6yMvGk0;*LLA#AXx;7EmuIkR(h_H}>sa@6W^|JU(`=}H~N5Kh1 zBa2kXaRKHXM0MU)6rSt5WiW()2hmY&`@RBiX<~p7BFcL|A^H-%c6vMQ>J*A~msa&z>wkPdcJHN|~4M|{LpTqqTUy8G} zGc;Bzj6QIM1nKIB`-Ael$7I5MOBjZt_~gaMN;ruL4MdzUWwe-s7gwp?bo1SosWTa5 zwV7WoP@Ls50x|;_t&x2ZDWvM)|5t>%T{6J{%>Ua2^1Y*iZ8ZE-t_qHJ5Bk%;nXD9B zY_M6N;{Cv9!%Fgc%1dZ9N~Ov``ASP{+k<_E=LeGuqGG&YFhi{N#{)8YwE&@%Cd9v8 z8*XW4&25?0K@i2ZONNT%?r;JfHGCYHD%l{>v*A{6S{rv8ufrz@i!-%J z8mv9P(@NExH!M}sp}5)jO!0C`4`H7!!9&O0aUxqAgVXeiJsgqAi=Ky8&uED@+C#f_>}!GrlB{oi@#ad6wm_-1>SHs+glkXyDlNBhe6%oxy zBRyGyy%F!$bnJDooM`N`wmSf zm$5-l+n);7{={lyohVVeM?&p+ikJ<+m*58rfE)U>X+D=dWoIMBW%$M=63C1n${3;y5~U-l64jFX^>>gzdL^j8ySl=5jhf4c>rP5bMs7Be2J zE35p@Ak_KS-dEk!9gNaT${ctg-+ou8-7f7I0OHOwiLUx#a$FJI8X=BIU3UJ^^9fIW z3Uz@>Dybh*rFX?*Hd9fZR%L+I8!;}TTYXjH-(KOE+@|D@p)&@ROd{3$S1Eg2eLL*C zApJrWECJ%G%=+S1Z`RW2K>}Nh0>)Tb;_2uy?_}&`@tViZxH7lAuG)RGn^$7IM1qMo zjI7ip8n{zNZTw?Dh=h|hd8lkqy2E;_?aZV zrlN)D+>6p6CLQY6(h4#Z>g&628kVAqWWo1yUEBXvFLw}yIiQrY8!QQvz8 zBdqTwHVGVy-8}+%t_hKQVS~WJ+VyXHlW|{_tPa8;W}zlUpO{^t+1RGII#nvp_DEb# zKEF`R*W@v4Z>#%X+?+g(U9&w`$R(rUOTQiOb;lCDY9A)Gz1Z}nbIE1c8Y#9#&bC| zV596i+6&n1hX3q7SWCPt7^aNi{S%$%hodL{{l}eJM2x!e@zekBXyR)>16ugO_Y1E& zwIme3*$apx?o&9kZ%XFP;58J#Umd>C{hJY|2pubU&I!fdI0W zXL<`e-~1Oz(MmPXdC(CE_+%5OmD3c%MwTQ$$d0Fyc;L*{vVV&Xk*0G79SAz2s;U&6 zG{+|+m-BykVuu?UvFG#}wK-TT=|ivw^v0e%w$IZ|6PE4QJc(w20CI0yRa@_J97iS= zWOP`LMZ-u?O1{sTmLgU!Xn(4w@%e^hnXLZjt~J=+*-_@o=w0r{i5Y2$Tjfk%Qe}=n zD~#35((!PNkXQF$)O9K1tG#yS&ch3PvlMQ%vzdFo9iOZ!l0eKcF(%51Nhv_=5fK66 z9+8J{Zi#lS@?K$Rs~Ve3XHtn|YRhKXaKx2L zSlOFWftKqs)c?G`^7GZ)@xkR=4AbUfhY9GW_@!iG#ppjMvX~GgIfhy`>H!eY#uxkT ztW3b~FVoZQ|4})1CHaPL{ewXWTq&I8y21y3FyZx6cNK7xB986SgGoP07lJQL>^FlK zbxn}m3^)i2pf5Zk?}WCder(7kOn$P;HgERfr)5qy4Bah6P?!M~FBw(#2S?Xueq^kX zGp&pMEj|SML_eH92jVo&qfL<)Wld)SMlO@m!$asK#W+Gsfxr|?lQ>R>NCRW&T(M2y zSz<|8uB0K+p!%D<)&pF7R^4#m`KPVuOBn0ihr5gRScTFbZ9 z?VUZ;A&m}EmL*9+!nRDS(#2#zlNiRhG=Wt&8|A9t-dcHn*94=8Z1f2D{rnOkSE{Ya zU3a*lm~P*2>UlOWy$VFoB%Z3VKd<@%dbk?5k})#D?u$Iay&8@%gP_)z5ZWx|5n!W&X^x-<-6 zGtsr&q&|Jm&{ah>-J~K!Cb((+Jq44BW7|FfD%2r)h5^6}41zOGufQu#g@=%W0&Vb~ zxmUq_KyaRs1KRF>*7=BR@X}w}Md59`W?SR)Uk0Di`ICajrsJJr)n?6Ely< z;8kqWm)(LtzfiwNl&Hige5a9A7MR!mP3b~ktMmsS(eApYXW^CcGqU!cIyPrdc)fJ< z2nVLt{@+0|XB->c{O1S`EGM}s<~L7h#CcLn7pmPFcZ$728oK1eiF*;g5})NZprzwo z%oR3y((B@G8*9P2oSpSINjM41eP7>dnR@h2h)q0AEcY#RRy72F4BmNLZ{o2l;p_EE zDZ6w%mtAv4nBIHk-)68@7^`p3kyTmO#Q%~T)8ox{H+&p_4!la+(n;mY86}b``Dq8s zP_qlmcw^ZM!(r1A<3_pjj>%-qVh3FX>Tr0^`+vPHHIFtpVWqR_#KjRO6Iq~EXVw=Mvl{6s zTE?H1;&wKdO~nJnVMF1fXrC`aJ zl{1-z9G5Q^0g52jz@)TUX6vTiwywZwfjAmH6%3}=tPu_mO2L3Ss|Xwspt5hO>JC$p z2)0u-XGH=}1#{aUpUr3CLo6rDq_5BjBnPEd3UZU&2F1i;JRgg2hMWl|a3Yj4*$hI+ zPIW`~uL{ldwzobNpR^D++X*rBX zNjA>G;(FHivjDtmtnha=%iJ&Y63Y9ipuPDVAin!@Lqzvz|BryTeokc1P#eRBN2 zkJRo9f$1gCS2?}%#94ys6Oa1x7hY+@?UYz-?-FvEiw~Ka+=4V#&&!Uv^v^YI|9Fa; zJ(@d32$j1M88{bTd^8%0yYD?dUfIK&!E5!MEVRn-5>-TXa8$=-=8fS$_VA`OSg;mqjz5MsL~9Wey=2$xbZ84&4vjcmv?u#NS8tT2 zh=oG9I^t%lErrtt`4C0a`%&sqe@y3D+3-lZmdF=Xsbf1^{tY% zOE<%p$~tcOOn@jGNaPU~(S6|I497L!WvEgyG@E=Xb(XS_RBAVL>frfaIwUg*EfiN) zvISbKw=#v_S%Wpy+BZr2L({ZBWZ4qSlxVmQC zzrx&5-J!Qy9d^akxZ&1T13MS^ecG6)j}Smtvy#4eAUc2}RHo+ywHf|_5UK#7njG0= zwWl@<_jGqkhOPm`ymli0u-xPD+YTr}ow)mpxBl1(eVy+2efO&Uz>?2#QPgxz;@`*r zECDP?M^3HAui_`m=LsFwfC@zIB*Y_ughpithSq-v`2CT8-ozz#kw7A6#ac-I2Txw7+?Wyr@niCUpijX>l$A zbXhA#Um3gq>+)(}<>Q&GQbNn^HkekgVSeNC{aQ#OsU-J--w(|uVzX+z)$TWwC( zl_PE@MlKewC9Nj5_|zU;|8Bj1%Lw@D%(X{)2Z1_5TrA`aC72%^t9_*DF#ut$r41l#ORH*W;xD(ee-gw+1c;524gorrv^`4@>o7p z0IDPX%*GiExy%7@=e=|`vWvsFbzEVJ1kCYrk7;#|+XU*NjV4}9w3xkD-!#Ymy)&9PUp@Einj$qOVJ)LjbA zE2zl8whQ3Y(u+#l_dbz$`P%z`HvhwA{}LNL1(HI<5q%ZAMKZl8ELejJA0^)RgTD%u z|9m|WK2cLv`K@e7_Z(>FB!BgT6+cV7|8wsIV>6k5hqw=jl_W+Y{&1GdRkm5ZQ5fVU zk%A+Y!Ya?~W3zJ+?H#;AnM3T4t4;xRELGUSjwX2R%(5FYa)$%afJ`k&c*CgO z`1EO7y>1&aliIoItVOHGEOt){J!f94W#y>DhIFBjg(`BhqJ~lWye%% z)(rP~yORkiR8`M&%qs+~yv86Ux!`4H#3luGV3Sc-Sz~a=g^lcc>N7WFmDMSzglF`1 z;jZ`N5;r_{<@>Jas?CwnQln@TXKr&HOS(3fSXWW3O zT6~Wl-7>!;Dv(V$uFn&aa9Q>UR~uk9C0ioH37yYuJL9~^XpHzN>c6J(JoJYG4_@Of zgOCxpVUywG@v91@y`F1s*LCeQ`{UvP;k~^=emoQ|%HkfkB_jJy`P|i3YYYFgKP7&9 zy$yV*0Vug?Mm_dY>Nv;b7O7dQR;QEj{#He_2#=a?eBi5{0KUx2P02DH4my&qv1q_2 z+UNW1H0%HGUv)Ev=si`o{bIZ&YhISbxrn}9>_lD@edvsJKMh~0)NkEIXNaLI`E1c* zdv96H#QjpoJ-o?h1Nc<5hfcU3&Hk;Ht@hpU)Af zKuT6k3y&IsOxGs|PvMx!yJdr2ZHtwnDaYtAS6w)W`X0v_6hzZP{0*wbEn%5K9^ zNQ-bZAkYLnW|F{HPnt=4@%2HM-hR`iQ%x|Tu^=(uK|!K!JZ)9;?>p%R>JYvL=|#mu zTl!3kX8(P)dR;(xS5#od#2Y>Rf46|^bu#`~8v-Z7+uxuN{saNA+hp+P-+Xe%0Q8+P zf8ld*A5fKtoW)wOV_6#r4<3Jc^zt5F^6@Qej|{*(DfPw^j|YN}Th;&vuc=`vs3*XG z5^E(Iv}4h-yynF%r?4nv>5^*Q{i*uxikx44hWyu0gxL!*Bf@W#mx!71WdLF^I( z-xJSH$}^jD=SKwxoeynPVm?StcIO>m`EdO`&rW#NH1E1K@E1++eGN4w4rw3)b~_7h z`SUM6z}`jo|NLbG>;?mWu%N)H0HQ_|VEYJl-}vtTX7l15Vas7y@U4wmUCR)}F+E{) z{;yqje!XIXN0LZ6_$%n&5LYx%A3Ap0+qckkQZV(BXO6V08W4G-h(VkF?V0RufalIW zTlZa_8=q=EQQ!Bv8R>Qc>;iIN&L1X$NzOJ-%G?+Q|AJ1NGRueKU<>8&w=sRsXJ=YX z;~(wM8;@|{MgoI-GLJQ$AgBQeC`UwU{^y+F8n5jt@5Ddrz`-rO>MyIk7wUBx-=l+? z0#;@$tcFuKqlKKe~h7N5S`imwE7Uu?`q8DkDEx*{}kB9GHc2mw#xz3;oVM+bAi3(Fr6} ze~j-x4O|Lb5FyvH$?YR>Cuz3{YtSj`;k7;gy_4iNu}D7uBO|TeiB8%RC6*{c(dYt~ zzv?)#IB@|!tN00vgjVbRimo>HjNc6P=v+8~aGD1eE5M5HN|VLy97Bh9!IH|t5V{Te zn3raNR`~B-F(#BU`2`owGdsA(k9z=ehDEg}l(H-7(CLj*gj%JYo3|IgzpwytX4REM z%aT&*f8ZFVO4t1Bc9kgXF7R!yEYO~=U9~FesjXyE@yK!{1;Icz9Q|1S(rhr8SYc?R zLqJ14UcXuOGc_nPyzF)XNoV=qOnWnqcqKYscvfmIb&a$!+I3mxU zZ_G+B$=#Znlb08mA3VB32Vu`kTFrMVC`j?feQ)PH$1Yg`q7Y!NiNHW)6akw?N_)CU zI+G(%NXgj6*a?!f+Sow+ch2gHs+G4`ki-)6(QDjLwiX*V&D4s;665sIV~gBWL@XV7 zbTAhhQgcp?Y+7uRmSAZxb8U*46#GU@E_^w z7p#k-G)!-i;Tr`^vThtGfC#wpE=TOQ4Ps^l*Oexk>FrZhMJgvg{wX6yl7y%7s)0x$ ze#XnsNnUT{6(TIJt(K5dv9fgj=MSWiyH>5_|EGWAgpsyk$(X7awc7Wuly*P{d|JGk z=13~SbbbWacQqzTrI-DYQMAIYISNtc)_3}*A){YP=yE<8yOp|$Ain0nCHO5>#KaNm8CzKF;7(= zFrvQKahxLlq}`@r%rF~EcJ;7Y92-(3hBA0DAGzRW*QuQzxE7>OpJJC%C=ySTWJyfU z*&ur4*_qfMF3c634yQy;N~XHo3S@ZcCb$z-@V_?zRfn+iiK`$*`wv zCOX9c@DgNvZVV~?BpMH%vm0?s>D|EM+MuLLJCDUJ;;j}^3?j1_n-yL8*`dgxQFT1& zNqZQ7E+wv{qr2hJgpmv50@FuHYFPUwB;JqhAz)1uG^^cOEBEs-KznRActf| zZGk4761h}1AI6-Tfz668m30X-Mlo^Zthl9g)1aJ{yDRmBnj_=>R8xg zzW^p}WQ8iX_icuOx2mHpo*~~u%L;x}^>4wTtv0n=eUh5PD!{PvQ$1b$?thc~ff1T}QfDfkg>m^yqoN2Bx|5DCnhl29~SzQs~ec+ij$ISK; zE8HqESGcPeF7EZAw*8-zF=HeXO3coNBlXUrk;!u-IUZTAxV8=6kc<&+$(ayeVkyeb zy#{KH+t3>D+qY0qsN0I$?M9~%lIBH0ug7Po&FQgLyBG11&x5BS{Nzmv>h`a-Ow$l) z=EZHLVv$=V=ZdA>P(X$LTMO@J7@^8FV)er3h10*ge&4eha3v^&S4&{%zWlurk9c>K zpP~Py{31{(3RlZ6J(j&=0Qs5&zYd^khH(3<%+5gL{$BRM?o;%n5;&WN(~jU7Ne)>v z-Ck)Kmi>F-3r^AQ`Eg5Ou=3j|Uc~)2x*o@$*ib5l7wTnO=Gh4#Y_!8Z9epOZj$Qz_ z0*f|aCH;|(AtfW#CT-uO$pRT!Pkf46z)ua)_>))>ldFfiB9x+YvnSKdzoG9}8;)Eh z^F$n3Z?*r=QkiGXW^1Q-$@#1lt<6iZ5Et&-iT`^V zLBz%dm48$0Ub)qP_cTGWUAZj4Jewd-%VpoiMn-J5zu$yssEXVP(fZBja2#{Zsh)Lk zo9HR!bJkZ9kw_wKw%2p;>j_Cl&M6|Ee`P#F5*rEb6qk;l^;b>bjaSBC9|bMtkq-kO z`N)oBO)*$o$h~WTOYMa1+N-@*igBd3t>O&h?)o8rCRcFE9J%p4L#2~}h;edR=m$r21kMzixhG)U3P8x^xa?vi?0HIQZ}=~6 zHZ05LLc0RH>DD{4cKga+LDggi8%cF9`k$3K?pAA(+p)jcaGfbQpE5QO`I1F0nN)Pj z3EqOi%rY5w7P_+qNPJfkHU8^kB@hT)yW%v>I;|RRo)ZN&Isd3RwuwleH$7CThm~;n=#j%zQ6*j#>j18g)09BsN3e2GgD4Sy11=^b*_Lp z1!lWm_?sUM2L1F6n^$%yt5s@E-Pvg4FXeYo$cB@xO%SZCDqJyzr%Ct?(DU+Bt!vS) zA&;8k z+Vr(J0MjcKeR~}Yy7tB2R%^BD<&tC52muQh6uG%q5`_{vBc77cLaA6RGF6R0ybeWU z=j?WhNo!LB_=q%1y zgogbGahIt7*M{pD4u(|fIa+Yz36d-r2M6#+)9LwZm3nukyHV1BS9euAGVAdlGoMCthW$8*j;6R6Ix(jkN^-t=}o0=HqvKjU3 zGm`u_J8lVVXwB&|mSMG80>7p1KCuLC6|nvfceggu=@sM9_{KSRl-vCFzU+pN~eOEsEiV zpS~_Wg#(Hj_%(E+jD!@N%qNy`vn5>OAg)(RJ{yI)W0UB&N4tkb>x@^x#!7S}=}(?(}&u?1k#YnNY~?>%jv8_N{Kavet(gVx)++QprMYCKvKY7vKUt zp3c@gIrQ%pX_am{4*7BsOWCa|%aV;ACteI`0!*+h~)w^m?ul{x> zzB?b!ao_gNp%)5e4m}yU!pas)MaLo#Myo0GN>rM+P=afjZ&$Vhrd4#Xa=8r7JANY| zV@`0>$YmE>aW3H3{m9tl_=@Zo^)`+l!Oc;>Wm&xpF9JGB{C+PuHELQN;-VC zxSGd|mYhpkPvQj_ljw3jHtoR^A5+JE3+y7~7_?AHiUA8S^v^1lpz!iiI8TdafR1Zg zI_>oP{U!ry3rI#`T&VM~asv{(20XzsPe_yJ!(cFd0Bj!boS0j@yF zR8e!&&G5f1I(y-%B~o}Xd(&+RM9}pbYsshUvA`PN-ZhM8^Qnz=(PXh1MZ`+5Lgc)_ z!!rEZ)!p@YXrrJD7}qn}|9OUJVS~VP=~*E%rr|8YSgqXKl`lVhN8029lS=ejI$zCG z;_A2hj3EK%YUs7-DT-#|n^HYkG;N(jT{{;mNa)H@om%kw{pn4ko%UshrldNv+-*+t z|IYN&L5*bvo!vbx#mQM&1*Q8A94t(Hl3!3cmIa2uelQQVdKvSz71pBCGPm8BTw0Qs zo&d@OL9hb$`FM)c;fnTpGLgtjV5$|BWjpt;n1FLil-`sGE$H}?N?`=eDMqa{MC1fQ zT)1R37(5#WSh%)52x8%IcsXrnkh6l;ukUWH&ysl}gJaj;sorR{T1CsSlbw%appXA! ze;kO;YEPe>Wju-7H+5a}r7gNSJqG{b$KOVXcV*xiX#W3H_W^S|eKb$Z+uV;wbx5&X zl-=GA113>Mb>>7*S4XF(5(m}iYm>8JfdAk7iuZ;1pZRw1nb}S&s>v%0mqy2frySrY zP(;337z^B;C_HhT2KUjf?B{odX4KLEOCIv|uEz&O0kdH8CcIQYsb|5MiSxec|Kwr9 z=-F4Uk49%`CS=-WRe=+>X!<;KibY55o=T$_>YAxiZO*aWN$Jn<0>0)w3VIbVRihaO z_m|#k0fsTht`>-hg}cfK-2ELQll7smnwE9>Fp~A5y(^JHNu+R8t8Ar2Qez?3Gi+19 zI4>>04!`Z%cGfk=_Q4<#*wl84BIUMy*)#{YZ|3-NGcT(wshA~&*uLoJlb+=R>0YTi zl7nY(daa1vj;hXHLqj8x1DHx zewlr0<6_2)46xGk+Q16(%W0VAh|KV1VUXp8v8 z!9SOW;F70D`B}Ap5ibVZHMt>aihpwDKXzVp5`G>0jlKNCp`YzLh0m~12t5qOiK_e_ zrA$lv{Go{3#WICggF)CEqzeyfVtgdm8ADZi?I<+#6$Ie<3UMpRyAwl3Cw;>JZ=-mA zbHr>5{(|c^T#`%2gH#+0gjfF{Y~d2em88MP+>V!uh%Ck8k#IDNgNfumo9pM@Fs>@e ze7(`EWG#N4W>_qrNXGM_@x@15&2lcEwsa%i?yj^7kkSbnn3IE!QFTp35kZtEX~IJF zmQq}EaH&$On%w{ebp!9p_JS87{S_pU^z;u#{;cScD2MS4rEBMHS?KQMw|@-?y&c+h z(F~gCjTiO}{gle%@AWTVegD?Zr7Rc%m;^XMf=~v|(Ls7AuyudtKD_6>aO~)%tf?PT z-$pLcSF{d&pAh%So>q4S2nc5-?Ss#HEUF?gEU79X1q;R3p77f5PU=7X zM!)|LNgx2_I8N}i#p2F4fBTyeuGi1JN4;kc_(m-Ba!Kkn6sH80OEG-&>gA^n`2Sb| zd9Yv;2^e4Xc4nM{3>dy$o9xSUXWO1cu5=K6uk-%*4avWi!0q ztMTV79jdu$DgJc?v}LW0K%ynce~x&TV0Hli6v$#_f$j~UHN}&t(~U&{6g0Hl(eF8B zS#(-!Zw!C)R~x)3VoMjVomknnPp+qLePro1%dh2v+BZb@dUf1uJ z_pb7@v`$Nh_wRMuV^TjQiZhYFJ=IBn!!adDE6IGdJ=nRbm|oykvFKv=9sFs4v`MXT1qepUY7qY+kn0XH*Iaec5!+_Sl}c9d%*Q%iC3Z|5LfW3X z(q|6AZd*f?u$F3zi7ncumCQ7zi>Fw$IthW+1{?J1(_FHP3@J@Bzdo$Q6gD^{D_tav zTA9gTo{yEBQ7R_LJmIZ+!^jX;toO_|PRGLDlrZMC+)Hw>6_uDTP+ zn9;i(KkwAjl&jOEvck3qcjOAydWOeZ(0p6iOx~(n@m!@7LwTxGqxO zeBjc|Yf?E!cP1$(Pq!G^JH!))1~GMjSzi_?}4~ z#;8j_6*@UPH3N(FN8htmZWnn|=BY}BlxG*;)d$aUhMTWS^BMm3l(i^`yGO6 z3DHBO=g{*ocu!;|d5fM-&cBlrM1exh`8c_#%W|7>C+?!;Al6zJwfZ(Ikw_XAIa0%? zXx0_2@^yEywWUbrFMiPA$gJqWJXI&%El1_NRh>-W_!2X3c%8DdTh}O1TSR=RR4im7 z3*15$`K(iy6UP|n#C*W*aYkyAUlX_5ZNO(rdZj5n&kbj8n@^|HRZ?r$cck)W%A#`q zrpDprMvhdv7ZlYUUOZy<_9~`nsikc*$uFU)d^GPS=xL(8ftMDacQ!7C|D-~-k^APV z{--*xRyTF0mSmNvbtGAOZ7UJvRyZrNs3)al)i;(vQuQe|J|Fv!Md#k=1gAkmiQcMS zm&=;?A~_pyy4>*{+pKHGc2z_%-N(bh#%SONO%{`M8UYV*r#3~AjS5Tf$PF`gXrRk)}lTPq4nl zsDCg3(;77Pl~xw@0V}5=uJXLKI$m0rFH=9Rn~JkMOBd^owTaqbC;H0>LnG4lo=|Y@pC^~TPMux1d>f5B(Xi&UWX?Wfz?{i zgwAOO8J@{+FcA1lPU7_VU%#tn@p-4sZVN_Z+2tH%wtqjjLQ2&Ny&V3n5=?2@Y(k)w z!kHzlE}UxZxuR35b^6`8PF>S<_}EHF@)KiyL!;)OvY9P7a*nbQN_e{dPh}3=g&e;z zzv(Sj%B`t%M&{BRPCStN+eJF+a^2HOlI9h;mD5zP7e^x&oEy2a-ZrLiZmN!8BrB>C z1!vQ*N@U5*njXH8odNFwT6cKNsm8e`th_B}=uXhyB=B_Pu-o09K>s}T-f)pD5Gg#o z-Kf@T|8&ys?4wqg=}f?9lPRN%a5A)9U#P{Jh+UX>m@v%0>U4#Cs=kIbYGV$ks#sS< zLGd&T)*2*j*_mugk%Oy|Q*PoP?)7?BVc|qT>+Fz?_D4Qtwzvw9z(#c)3McHS$pQ7Mb%_js;161A=o97G3c{kzYKDp#cP0N>hP&%w>c$O*}-$ws6Ug= z$g~G0l|D9ehbMxb&D6PY(@f;=6yDeB}tYw;Ig3NCY9gbxg`Xyf*V8Q&c zcw+e)$K|r)TFDUl`2TZYzmAj9$jG>`n2nWooA`3wu;@bCX_a-@i^byjI0!+99kXdY zH{k0z*{p5Il7LDc%oitpl~jJq1Ow7$Tl8sY3RrUz0F@RkYwNLv`RaxwOG7y!Ydj`7 zt8LGKQg@mD**2wGrNUx$Wqmx&;uQ^^iKQ}>hc?rSq94r{%e9U%ZPr?KF20>5V9;-+ zu($^>JM3T2NJT|N^n?=gC{;#h}@mm5Hw@0Wkx-g3y8 zOJJNZGDOVILYNvt;@)djQ-NRLcDiq~*#;X+EjJP1^=lY>AL0NvOo5^QeKQuBWaz4F zWsLHHVht((SS&S6TB#%#mJ=qI$t0qYXiTWCqa|o*D&Uz@YPMdRj3rug?ClabW!kAry+X=faTrz0e(4~inkRC1fXR;!r|ZJYgF!%|g(&(tK3UUyY1bQ&~45+QCT z<#Jg^Pc_zOC`C6+A#s!-mZ6gvhSBkLrZ9kv50FA7M?3O+q~dJMJ#wD0m{q3iZei)P zn+?w;g5ha7ZY5)W2IL0C3p5H-YT_)yrSDz3MdaD+IuEn8DZR#sS-t67R`0L#g-Usg zH{C&lI5V9>cjaTg6{+7Su`N;6x!xX%5$4`3Gj>PA>ham1!>XWERoi;)mF=!TVKtdZ zX3IRd7Uc9aS1!#m7>2t_&zo*)tEh5hY$r#;px092NiU$*42gJ2z@K|d4mswyufFDR z)f~`JlJcUS#`B^i4=ri-i@kw1N540mnnlh1ykfIEEIeNMujF|hwxaBkcnjf)JYsvM z5}7nIBT8(PBN@QvNC}^ySZ8K}O&u$Xd?|7u+0;RHzeEbSVAtc5Ij$s+_#H2B1r=Kq z@-f9=BL}0C<-h#INLNRrg0SoI;EHMClK0gvG+ctzLh~wnAu*FI?6oQ#M>!GYQARl3 z*=Lw08@d;wwJRB;PS1i0niJ=IOXl;=ThCiO^e=~%Dm>u~_aHZ;# zm@(tHM)uGK!$Db6cg9-3Y-Rcvj^znF6vk82nN*g3dbSLfF3COE2t)I{p(#B5V2#1t zzkFT4z#X@b1+DHM)iR}>TO(Vcn#?xZx6HQlZ-a(`%w`+)sXxdrrgoTPWwesMF+g7J9&T}Rj&I3zHHI0@h9eEFj01K zEa;1^&~+zTn_|M%k7i5+Zgf}nD8Ajv=B+bQSHRUE6GAI}j%J{>7&P8g~Q zNnM(zS+~OxE^RnNkQ_~2_fodur&<2Npgz+jQLlND!F-P^WJ+SAt2=Q}ztU_q9h3BF zcT-WFPtaT?ew*daHLb-%$t@a<(8BWE87hNhY&Nj*OG`#Cs9o6 z*TUBKo<@&9ohUdpJ5mIf#e6mu&Egbg^h1LBol&WeZ@b$&lL?}j@P#sTA)9pNULTko zw%lBL4?|ZeY$jb0!nG#l=`mt8B8jBSWVE4qhtCjJD!k*Zwy%5Fpxq^^PNK9c zOeVHskmCx*q6IxzuCy_<%nDmcyKh#e=DFpTVjugq2|Rl1VHR+6F2HrcluY879}NFzQQ ziACaBFcC;#(ZxJKfM`iM7PSV0d9bbAJAxm~ZxkHIVZ+BzA)L*qcKKM^2SqYBdR(PRS-!a}-F)aly?F=n>V|EbU`BCdzudXiV-4`xQXu1}LY#Nky_Mj6 z9aX`E>VN5=556n&)Ei!nZg2<&=kTjR%@>d${!MNs#sE=w21qICtJ!H_g9E~ZTo z3Lio9zkTBU{J8(DflKAs<gOvPN8lF<-T(fcDziEQrj}ZG zmfe@#jKMcJXms}4<_P>8G(T$i(e2x)+YLra-9XF(n1X)NxobXqRlR;cY_M2RWOwV9 zZ7B3oX=#Q_#q&FIFNbg&s1)K!t7VsmAc>kP4qV(0yTd1I<4s9DlxdG) z7#7&96hIzLBDh`+-Vddd;Tg9xxdP=%oYg8;F$5_z?B{X3RKgiOXm-Yf(PU(Xby;aK z5Dc33iXILfm1aKzI=J=wP=KSZ_*MleR6>C1bhcctxsgN?1Wxgqb0C?{q{S=jz8q2_ z_GVn-cH0s^Y~r&YF{~%MPEcYs8D0eAy_!oeiO_$Z140Gps+}ki z9UH45y6&=oGo)C$652I8j@kdo2K`bXGGW)6BzYKtaYb){gek=mk9wt4JcP654paat z4rbF3@4&SsWXPp3S;~OLE<)(Sfb8IjYthJve+6(mikxapIGnC-~tn z=udRcV})6Ou`BF+-iotpL}Ia=kWTes#? zvqMXMI^48wF7(&4cPzA7^$1sXw~DA8286ibvDS(XG_*z(%Y-}!JRRbY6?Q(-b9`Zpy>P9Z|X_x1}?-t@;x#%yD^fFDV=wDnZ!q zn#nG_l3eGFHjY$4q`aZY1XNJoQXa=5Qu<1Dd?Lc?f(ul?rvE@m2uKzI*}rjFN) zGhOB^$Fme9!MF!+>)L2M9++0WMAvgI+i`i>&9kbk44Glx!JLZ5qAVa*-|dA2k{K}D zwLqwW3x<22ovA}qJTss!fZdaeJ!23-R2F#}M^PLnSygFWW=S%MQv`8U=9M9c6pTb@ za~DpXM*-fr^XzUAL{CCD_1@m8&S#tb04UlT<8Em75qbF|FPT$*S>c$9GI!Kd%1oM zn?h|SY5=*E9K`8pQ|Y8>uAj;#=g>mVPdn_4v+!&~l1xsN#4~r9QnR^qDo0eo-Psu4 z%`zlG%eK>KHXGG~DKa=bQdLD&G;4%zy|dHrkDBzl?mak75gx+3T1P-qlX8sR%wv6I zX>l$Ri*JjGilQ2(l~5EmYO&?1#YWB`t2RZS;g6JeO?#xU!!WJ%o>!nvCv%qrR010% zv%|zFWp|ywOZYV4ChOT-n(xFuBuK?k2-CCVeQ*J*Z~nGnGI!of{KFnHVjm1JdW+`& zAHNX%(DIF6=&96v@}m`XWNsb|Y2DuNSy(v*Ag*}5-#q@D8@#2Jzp1m0R0;vM{pJ4b zJ8J^S0aOUrdEN`c^aW%}iNcn9qidrg@rGyr3fpg;%H>Rvi3Bs681`Ilx}~lJp`PufJ%uNA zRJ(iaW?Qb5i47HhGc)~*dl4j(D+xTABzQqGuK4$6t6tYDsSqqgB65+8Y3;KmPI`tM zb#n`CN!6`P01&%f8bFS_h_*(U?gQr_Dk@D}N`XX(t&tu(MYGOG<(|{mzCB(N1&-J@ zyn`kQ4k8WQ5*+oR)ow+|2>L~Ad$+(bIn+mbd0d(EQ8XJ_phLq;of5nmMM!qGk+EbZ z8CuJybkbA47*KT@)GZdXiOqN@)kI!28bVAD*fs*lb#NvfLl!c5Jz6x`s7rQB)~v=< z`X|wF6wwD^dYqJWQ|I#7v>LitN`hxJ5zFzgtu8>z_brgAEC4dZqEVERZoRAB?OKHm zm2#uQSL{lqf}YpAa-~rqq>e*bYXOq)3IZArY+0J||ErWrGIghpwAR{XbbCEvo6T62 zyr%OCxqZTu>_K3aVR5w^xa2x9XB)3R*2 zOgz|?5CXzJB6bYl_D5us=}6QGSY#>EhD((MYteYnt1S(JDcp-X2$2R~M$zI;SRgIO z1+z}AD|EOa&Iy7j3Op|~vX@zzRFZ~}%x02Xd;ZDwiIl{zmNqDsph7T_Y3&g<7dW;_ zow?Ow5a2xuTVk*Y+tgHEDO8HO%tt)SbQmRGA{>8SRuoN?thB|_I83GoSE?%yZowm* zR15r?E%;9!&I7CR1!!Z$Q+&_$RId9kCy^R{`I!o@_!dkSAW3`4xBem?B`vV)4m(d?SosZo9ZQu2fk|Z{O7Bj+sW@5 zyqkQc+gypxywSgE0E+SPVRzj^U;&`2P5Pq;k3V_G;o~p9;SWwhjBZKujp24H9KsN< z{FBf+s3-+s1NNQ3Gv&x``{fhn$HMPL_&Kz@_qFy60!^#P)YMvX?le0;rdFPk+zX*~y_WoJ; zm4DyZmA!6i+qWBUKeYFMU^75cV#CB2-#E1ta3OUOut1Gi;PeO+4qkEWrbB6MQw*H) zM=R0!_nD)f5j>>}t_JDVr$$`^4!*GN*!rRkqDQ{PF1f!#1ZrCa6sB#QEVYXX#c^Hk zLiMh2I|_yU9^i&6Nbl7rZ6ZMYh*780_{(7Lue^C|@u;=5dRR>hu4W?Vtor3dGBF!= zvz@f}X!n^FdklLF@YRk1#_-8Jxe4(Z>i|T;8Mm3zt9!B&brcvECWtIQh%qdTurnNgWKBAKzrRjh(rqVi$%NE0ZAkgMK~%Su`+yb zCyVo)FF^5yM`-iVvkb9DtzSL5wV42$_vclOI+ZqMqBOkIO#{j;4LR(Eb=NUgS$=09 zU#s0=NwS&g$(xy(Jprj!jbgi>Pk_o6S3Qd>4(Qfsw*wA3WJ^)b4ln9~8u04|AdaVy zzVA&yf-3(+awI=l68v-|z1N4J zf{Zr$Af=#QN6ClrF@$mH2CjvG1G9X0zE~`A{!|hry}*|h4XdE5X?#=sa>Vb9-;%qF z)y~v$UyNMK)KX+MUO&AUjYO+*YkFNIx*`Un zRs=WC=V{7qj+B`~Z`7|<-2yTj}i5%(e`z zT1k*nhlAcxlu*2QRLm3##U$lV%cYXg7H7?_3?)L~vHd#WTVCL~WqXM}-B|SxH18+Lh zXf`vkFpR%CpmJy}fa&olA(Tz=2&QyJr|dWh%t}enR6M5p%k|MvxUOy6t`p)=QDi5G zE@q0LN(-yaBv++r1q@XjV*`h6Vv9Fp1wIs6MM}hr!-jupwbLC(4*JF`XWW!$u59hD zw-XvZ@}jt8ejrSLyh@ew2xT>5yD)KKBE2_49UHG~%cQr|a9+3`8o-WUzf=q}hECvN z*#|`K4EwgtaPP&a$NC&63f8bTo2l1pd6h=CNVKViWU!RRk@37>+CK8)=)?k~)cI7( zU zi_&ic3}Puz(pn{olXd z=)#raXx9&7L>5N>mDqO0UwZ8EYm;t5tD+d%8xOJ82j!JGqWG3KupCq5Sq905!FL>U zIj6Fx$(=f;fwO3}Q!LxTs5eNKMft~>I6?sWh8jl7^MH-98xZpqph z6e;(5HW1p9U%nbxR35w#a5l2HyVKncZREPs=`OEt3EmO9So++A)Q#*PRvx_+@XLmK zc~5E_sVmO@q$R0e$4EkS{zxJnmNd3@#&w(|NgYLLScfFd=!{9Pb%@e!9eoMW@sJjD zY@|Cn3ep3el(X;GE)L`UWs3u!bZJV5D;+t9Taf-F_9tRHcZz!W?wwdl2NX!p3NO`g zJD7i%$6@*ME7O$v4YO_Jiw`RSe}|Nn{pCFPCm>TV=t8-mg!^n>25SBw-Z{-pTWQph zX58@S-;w<#@7=R>(*BavA1GvQIQeoX?&Fr82nav`5azoFb?+Q_f6eJh^1dTLNWT3@ zZx4p}^&4+UiH`37fA9Q^A(Wd2cLW0ZSP z_k>jf-*t?O^_qRk9Ul8xKTh{IjFXw(dUyY6bl|#(_l!tLmS9+lX8Bv5Pst{`#+`Bmp4Y;K3n@e|x$p zoV-pd)$_8at_o@;lwHetmkQH3ML{JXlo$1U!Zh#nw)sP<+McIcxh1u}mzNkI$GV2zMAl$9X7G;M6D!sOCMFM z_|&FWEvlbN^-oo;7r0Vr*Y=)GwnMcO*L{h9M7^V`Sz2r~r?3lAr|`F^y! z=|Gl~gPn{Mh~+r6B~Ook?H~a0_(Sm?5C-G;E)j4r-c1zDV``vWS%877oFpxr9qwy{C+^@IA4`QaapF(zka9nN2^?%~XLl&2m@^($kioGIRNo%Goqab9rCNy=iR8e4ALY74m z9X1!(la^~>V?=A3))lt=jF)n&pm2@b0%T=V^t4hP)G;>mQ_?D#O**ueyGms)+t)y^l}lRKRwiS@@5)`2q* zWA)>Qg8H!)r_DHZ9#j^SCn$|Kh~pu`n8u18$Mrnyzy@aMMt8Vsg_UAd?y;OzDKpf! zB_ksj3PD@l8I08(E{QOQ%DO``UZp)x%DSX6R5zKJxLL$a6uyyKuW=FS!ZH_6C59Z2BTkYT0ZMG|FtBR_3);^D2Z7a4lU9DArYrz>{Ui>_!`DqN(19W+> zdRfv|lVy>Ar)86>fe2^5Q!BdmXriqGc4DK-x0 zuwgN9^7#~>!yo4WRU9hE!U@%Jq?{&BC|FVfpbB(?`+z_u5Nr&N*aRQ(*M>+@hyabF z`v}AIdN%Mj^m|wZ#M}7)w~u&8TDb>yd9s*?IfCx?aNZXIPIr0fRS4W!=AH8a{4_3nd>KuKb07QL5A+~O@9~9h!Pkxj~?LZG7RKN!lL;(o+ifDez Qop9pg{K*CdwD2kw06w26O#lD@ literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..72840aa0215e3c1a8e8ada746fd6151876d80b61 GIT binary patch literal 17624 zcmV)0K+eB+Pew8T0RR9107TdT761SM0CPA107PN{0RR9100000000000000000000 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 L2Mo<4>i_@%>`}3# literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c1d46ffe082af3c3d0427fd4ec4f8e32f9c54428 GIT binary patch literal 4348 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≪HK)Jkk15%m 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 bvI<7D559Yq23nvUqHV>OR3D*u761SMWPP$Q literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b0c0d0cb9890073fbd701ce5b1edac4ee72d4977 GIT binary patch literal 14340 zcmV+fIQz$UPew8T0RR9105}8y761SM0CCg+05^>Q0RR9100000000000000000000 z0000Qg9jU%LL7o*KS)+VQi3T4U_Vn-K~#ZGCoTYiN(g~|37-Zpeh~}`z+Ac_3xXm5 zFuq6uHUcCAgg^u!1&LM%APj|08}Vxuva`o0$a2k!R{Lk3$wMU+P+yT)*203HNsY-rW|tj(m}b724bnmv7ND~ z#77Yw#cFXL_zdUF;nin3?2p%9y9XXDPyZkIY_Lz0YgiuSFhY{qpXcZH=iV24?`_SZ z-KZELITQ!Vz``o5Lj9R+%#0sK{R+kZG3!TRCSv3G#MoH9AHLIiGf~Ag&qzu;{bstS#(itQ+gJtZ~T9A<)4`h&?b{C@FAp|lpwMeLDuKJI!eJ-UWLCZ zU_Mq=rUcbmmDSZt#@wBSN0RSfkwVhIia>Mt7Z!!V@Pv-I$1iQKcP2ci@{9tj*;3!G zG2#10T3tx`I4L@=GqdTMr=VPhAb@#=Jn(S?Rm$`KSJijL!v!Qz?GWPkA!Vm23JzWB zu+eGt*DYJ7Y#E7*`ta~X2$Et!G}UN*mqto*5z_>^9O_s7(v-gTF3I*URX?qisSR6c z!6DA?SwX2xT zqI>Aad?QloMlvOnQo&@Yr4eA3R2(+$*a*yW|56WGvu+ZR_NP*7zX)R*Lx3?1A&aci z=l+?1fB*$#iVdo(f`J5;`FId$Ko1Da5DNrkz-k~v6+q8ql3`uZ3V_pC37*FKMeGTXSSoWE6^QeIknDcDg&`l9;sJ%&Bydz`

yOX{{yGy^j*+sj* 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

7eh|( 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 b/0.48/assets/external/fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..05903d1586e85afd1abe4a8b5f046404ff6bf9e6 GIT binary patch literal 20556 zcmV({K+?Z=Pew8T0RR9108mT-761SM0F0~v08iKe0RR9100000000000000000000 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 fAJCBm;sT1Rw>7 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 Z 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 WT|-k#JMa8f4USh(qs=w}0002hN7P{e literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..532a888acc56caa2a15d60310419a08c19861bf9 GIT binary patch literal 22916 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b02e2d6c7f8901f3eb05af80a2a83cfdc6d0aa4e GIT binary patch literal 35912 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 ArvLx| literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ae2f9eb07f5bcc4cd04837e7b81e981a6ec0e290 GIT binary patch literal 14044 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 O-^LyLpW0vt0002rdp!XF literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bfa169c30067c4d08aa76dfb11f28526d169c9ea GIT binary patch literal 32796 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a15f5c1ebe002a1e4946b17672cce6f7344d40e GIT binary patch literal 18592 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d1ee097f467ba8d58e5dff343d2f07b5488be7b0 GIT binary patch literal 35328 zcmV)2K+L~)Pew8T0RR910Ez$r5&!@I0Mg_D0Ev|V0RR9100000000000000000000 z0000SG(SjIK~gUUU_Vn-K~#YlCmsNVPA_T^2nvCzD1n0n3xi4kFoD`I0X7081A|Hg zAO(sb2ZUh^2OGG&1=G!)NZnO3U327{b4O9L=BRs&LFaz&0&i)QrL*r*W^Ql&(yfC(r@ z;S9n!qY3JJ0s8JsIGr1BO;+v`{7fw6s~(^cMWfIT8kfkXq7T^05>gKD4Gy4 zAwq(AOJ(c)&2*nv*PY96HxX~=|K04nXa!nknAS(s(gRv={O{SMx9y16fI>(h zh$ke3h=CWzbp446QE-^E_a&`ZYg)wu5}?vS;$0~s0S$2I|Av3hzRv|0%sAeuw0{qz_ z)OydNv9|YWHkYG)$bw6S=9Ly0{{OW9*PM0$U0Yv|bM}=mE|WBExB;&%M1}rWm;Xuj zQ1X$nDEDkl*iO8J-Ev1rfrkmtcnp$kiLZ1I@v2X|pby3i@R6%#c=%enx0i&{yG5os zjWO)}oYEMJP^DDMusNZU-8PT)lJ0d<U7Nm?*iB4 zT0v4&)}iLCSxPLpOnVAZKtd9Piw5ZGw_aywz-R}gfx>?4>gRQ)tG<<=_`*5}v5GVY za4XQ<+dNF)Px_X=zGRRNOotAEEeDU~5`as%`7Y2aAa6iZ(~&kFwz*^1`h2F%cD_h^ z;2<2=8M1JcQ&G`0Zv9-kXhx$G?1dzfPNXI4a1tWv4vth|Doo{6Q8{$3{9KJzgq28h za@x}oMiOC!Rx1bk-PSZ6~0p)r3fqCq7gEr@aC` za3M-PE3>T3iabF56CC2%wg*_GOnfYsu{3ed^Dsv}YhA`ML`xxqRC2ck0+579cpciE zyGmui`g%o49>Cw1q~`+sOLAEOz@supd5i`Nf1!nPn7WW>C1Q%mlRH-m{Y(eo*9%X8 z%B}M34KfPQ@I?G0`FkoWuir_pC8YpDKMu3c{I@U$EYG-=PeEHerCNGTDTnqcB(ST5 zknYN0Ge>5XEtS{5#2|!wG9v`eyzoSbm*sE+rIQBaqcgZ9Wy&4dDMnf9uQ!L~rfhx0 z=o}Mk<(9#Ung9nK&t>IaIZ9(dD5P~*PQjs7O53!I;K#zE0~&p({IIB~ zRjap5_bA#N#|!3xd1N7LZKADIewLU>OeW^YtSri^Y|1scD^H0(%wMgdDzTPK8b&Ha zG)!!9lGPXsT~T(kg6Y{ZE%S#T%N_QI^NIk78~RNaeioeHt1qnCbj{i@sL12`_CIa^ z?eGL;5#;?=5AN1 z-5xvbvfEyv!fEU?>7e}%5IbbXVN<3ZGwX<>q>ekqZ%#PFN!3nsfwP?BJQoRb2?#(2 z7!alqpdSJdF1`CI3j^8!zk4GK;QUA@U#8mWphz)R2})$YIWkGfWu{j;MX6S{(iSV@ zq=5Kqb9m?oUvu&<0jT)v(15!75I1*laCba=3_CtaOSH_Zn>}P{Aq1q=W4TfbZM0K* zM6kkM)ESSdu&Xd66CPg)g1oggARW~Mf?-IrJYG6{7$40jF03pZa}ojwsz_6n0On;B z%1_Tm90ZMLBv2dz01sxNqG=+KV-nCtEfz4KQ0!2;JkSNBEH(wX2+#mnY{)WuL*^D{ zn<(_X3a)74c&@U!l!*d9SEcEQ&)FO6ILlfzlk<8ezDFB5oZedCI0Gr!#pO#_lz9LtY0-lvwvr2vmGi|cr~kE@QTA1yF^!2auM ztI~YO?<7Ov!R-Ytld~u{kqBhv6`SWv0f=7}~x|eRN<|Sc4sizh;-s$>NIGulz z^ccQj=_TUXnz7OH1FF&n)H&RcO#Vu~K;zhu_@7WoC^>sdQD1AJge2Up@4>y+zA|in z)p@uZQvp@`FpQbBx!(4D{3kYv8M{qpadVGBpjry-Lxof%D?7KSCchD9FxIwo|00jv zXX8*et`Ae8@0-9#wi)J^4TGO!@XnNNsOQR_+ltk!`x>i@H zGB_$!Z@V297pN6fT2#j)Sa7Y@iqBgiZHM80P%TcxoG2Y%JS>kZcur6ap%^dTc?!ijEzZq9Td=zmrIl+@fB5MYwOuWfvzKoBoyGK@J5x~Xp{)dG5m{tTW=+Wo>Ie>w zkDVO-&B_fImHGls%&5=n0#UkypB;R{iw5r0wGy=I(+(Kz*!9_oO3&G=l21tYBoNIN ze|=3nX)>QXN3TUlr&UfWDp*L(#vXRl?Rr1~byP~CfZ+)E@rn|IaUNnzYd-T;WR26Y zoSb83Mw2nP>8CmG1|kirQMSDXqp#fThl{<_&z^tKL~8CZ3!~Z4(c*Ko&*zF#+nZ5- z={6eyD&!vdPfp~jZ%S2IWl%~Zk%;(VcMaCKK*yI-fbuttY}AwUTHb>mbw13^%LwLC zZ;6?9_^l=E6TaIaeIUr19mp%1c>Evs(QF7*-xN+XKZ0P2MHu+#v0eC&#+r?fhqntK zZG(FP-Dk>XGKxKoLiNdSRA-*!_H^tM2zK$!2E7M{+sohrnd`IHsnXkMo~-aaK!A}2 zf~K{UN&ZHQh(hE$Cw;W&o!hKTX+#pyzLBPYYIqpwl3Sq8JqwqcDk_6jn?m8&G@sa$ zFQ%oL%!tC0qHWk-3(ROd)u_#uTa`SC#6}+Kx7y) z9-j1!wtF^vPvTX2$M zk>5IE0P1-gIr;0*bxN%l3^-x(uPmU1l!O!Bq#r?^g|R&(9#a^t%NHCJ9JCL)s2o=b zGmbus-=%(t4FDR13L;*6s7{D&8+E(SmNC^C8<(x$7awnS)oC{ZlpNQ}^gR$r>gyl_gS*RylmF z01`jTTi`_7sR3QQ6_2X9eL59anMK9U7XOVGa}|u$6lwyesMo^qaWQ7(HI!-JoSO0A zW(LpZobzB#9EFWWbaN@E&FnyY7@o`t=DuMb07=qn*vn0wjerUqc^io@wJU#~27TWg z0a5ya*9NnV-_0;pu9b^5=iG6JNm>U`K?q&X@!b}mA4luIY=j-1U17qaS5`?Ra*Rbt(Qb`+P5l>g1MgmYma3zt;Eg4bh$P$%*F0N zl1f)o#u5N@SZXeW84JqBknRQGs*!Zm-CpI5r?oiklH}^X#gwFsCgyL?nk^C~V=@lj!@@CW z0CDl}NGeltzeZ_9COtCaY)(B1O88_h)wTkN;hin(_c4cAcu~rq#u95i=@)X{t*6%L zoHnz}{3|$n)(wukq*t$SJ-38w*UD2)9jms8Zz#O_%|H z)T3UVc2z)r4{F!0f< zaT8yln@Bfcr+dl$N02p8sfx`H%A@CIp8+G#C?x5SKsKJ~1O}z5I^!XR0LhfbxE2~+ z{~7}hF8Jm%Eny#C+4Q~AID8@d*+m6Zc(XMgfpI)CxYgb#!LN9gzcZsts$nE0N1zQ~ z4;HBT9_CG%FX-tukTL4H%2lseUdF@kI4yt@(P4?JZ;hmUn}G zi}xI-Np18dv9EmQW`ZPcvA-svB-`vJGf<4aq6dhrTSiKG*%#5XY%a#OjfX$NSEZX2I~&DGqYZgU=|ZMe8`#I(Kimt1yWjBs3IXn+$7jPTG2(wP=vK;fRBkkzLyLZdhqk|Sd zp?!|u=vVj~ES_uL#B0Cc_2y*XECN@5hAX5u`r4xn60<1GBg2dV!%~6JTAeB--2vEw zm<n1U4l)tS)lNt06ij+J`kk&)|>mndmWq#V7u#;-&d0h=F zZ4y~`HA~|~-%rt15 zv-YE?7mn`noGm!`tYRL^AcQJUwrfOa|Mmi&(^oy2G}rqw@P>b%Ie-+lH-uzcCex?? z2=39>FxIB7iF^U*0XAfSVj+9+{svVj%Z<5a%jJfI(kBQhZOd^QCf4x=or_mlj5#+z z(JX$6>uy z8kOemE=bKY)EDt+=&`94%cAl%6B@^-Q~d8L{q*+9Db0kHCKuDoc2_;+wlZ}10jz7` zF(e35$e=52l??4U#<+-bUXIFl7b)+}%Lzr$KMS$|X*@)d4ID)j;-jy4wVUYXXJ@y5 z#{0)_f)}XY}I7xKl-lYk@bjTlU8eR`1uwwUCj)&^tH?4Od z3B!C{0l5`SQE#9>2kcA-J~LU8emk*5mG9c4-;qP=VTVPdl-^s*;nwZ6eo|1HDrP z7cW|6G7dnV@3?=+2tOH$gVuSyUcUc1h#e*LF+Is*CyIlwHxU|(xQ$e!mCP7eulCyo zsTsq6X!hh4bMlIJpWJqrjd9Ax0ER;tlj_L|Lo7!XsUn(M)Mds&ptlD7w@>@pg}Zha z(Adxo1$BDbBF$_HfH<#FSIgBrHIxn=;`4)eL20)}QrlaYP@&z!x zEHAN)=gw>22-Vt}N)L%wu-OGE*SX$&I(%*>Zoy ztjwUap|-4|qR;HG%;5XLb3u-f2-0T#MGPS$ZUR{#5`ESyGS>&i!A=0f^P0mAPg8tt zz!sJJopa_XSqM%*?wvo&ojHI%ID)B1iJ*=8&_Lq9^27V~VJs96t@mAgm+~I_5Ci zNe>R4yDlmf%7&&w`CL9H?vOzOc5ZUTYA#sw*j5}=2=XxFI9PiO^L)X+5LAJdE3+0l znn}a;1xy%_g6DTPV_J?7({<9dxJPya=hTW@eshkOtp8eE&3nk3Bi}K8@DwN)PTxOg zT-u)CvNI9mczfer@O@)TyUuiNqs694pF1l|M|PNR1V3ir^B})H`ZMyeo^96T9%>{c z2J1*)SeBv+8F?6Nq_Z4MqcCG2!t&@*d}x$j%vBIjZO}N7?wgrK%hlp*32DU_XR6$| z;BA>4xZkmi%yiCgnzDOWdUDVH)2(|OZ4GC7+@X#ZtDl3o1hlU7yQtfqHAx9G%(+^By^sS$Q(`spE-k$~TBRS0Q%egzs{g!E?X)qm>4{#NLFqWb3b+XHE zJ_euEDbqjv$AIo(=3bPZc<|a+%lZBrG2;VauE^Eydy(rLdHGMehqX=X_+W$^vc+vL za*wmXAS=5nn!YH=4qDygmS0zEBLunZ5x|;4?m=y31qt{v^F>Xla})=iATQZ7RkT%C zwHRXvYq%;XBH4UqCX|c7jg0}2Z{vs%8}!tFqlGRRuJn^b<*-vqfm9F@JExzALkRVI z5;06Ad#>3d0xE?amGcE5p>emiu5?5Ry$3H}ZV*MoLSaeLj!xvg1z3^)=-mAVVHAuH zOA0P}q`w-lJ22aBZ|K^;zI(1p{ z%&x4;rwSpUG--alV^=aXWyF85(;)E>LbTJHSb`=OBt?FOvR_#i0;X3)Ko0)@uQAJUNoHMpb-%-$s+`s} z;{4lFa14;7|BZa;MiLr$+L8+Tic6G+Mf4c+|GzkfXdMEOoY%Zz;~H`}2!Tc&*iLMc zqE1V0Vimc6QbHLRP*`-pB@6(o;^Tw39GP)Zztrsai?&?yK>(rxYbD}tw-AU0TC83R z?Q%O{ZJ30U74^E%IRPOu4$E4({2~Q>K5Lq+gE8+lO%8#J&0CF43Iig509uEAX4D#& zhe>|Bq^pY#2}zdroA>sEA$Zp~KRpEIYCdr-rVy(?5W`V!ao!AmGBGN)}S zw;8D!ZLwt$S=ABXaHnG$^AtXnO5ka8b+zdG0NB}Q)a|zq_A&Zcuf<{J#Ootoo1l+T zek-@!;j>xiUfB0H0`;zizVj4=*RD^K*DtL<=Zk-4y$G}_cAhzH^x;Rw7u?-gyLYqg z)!3;>=aF-}t=I+be=US0-=>^`5?bHgxj09qgjQU#~e`Is#nb*>CSTz=(m;APtMl zxkYu}@(h2#6 zo>?uec_bFpsBqMr!pHd@0@`uDtGQll{ghA&w4cdka2T?2Wa@30B2kGrjy?&&u_9_( z2tq|!t$j{EQwgcSc3+k!+e@|<phU1KHH8huz9Ohe zMmliXO69l3RMQfaf>h3m@cj!c8zR*34-R)3pAcR_&8 zLDRZx0Z~5DK8?eaI7)orZNnm6Ia*CTO9`ihuTL+4<-zuc2lIn@(ivoiklXBV;kd9n zqLLvHhg-wpc|8g8EPb2%?4*N}UAB=x&+jD*iVCbR)GLW8AlInX`F;Wj5;`?B5F&GP zV!ax2f z$#c5ds309UZI+35X|Ykzc;5uKf4 z+}#ohv>Unh1A|`4`RhSmlaWWd(PB(tz$eAyzOs8r(^BB4_4!6t)uWV{m>G<-Tckv( zwxCC(;;Xy7qhdEM!*vg{u2--Aa1Q#G|B||~aDXnAgE7=Cmd-(euM!Fp2xI^L_@Tp% zFkR)+fMlx(bs_%o6{gBs%N@{eo!SKQVX<|FStgnKS+&+_&p#yDHyZOTj$a9g?cRVs zaxowPf9gi-__*4&tONL0V_n_2aWKA}RmA+2NNW#4sozx9t*?QOmMns)p>e?Ii2&$v?OM-`3tXe z>Xehz&BQ+RpRY1zu}Do!Or$6>yFgrzjm@GJmaym8fMZ`GFUKhx!fTVv&re+J59A2m z?hQs>x5>Y@6f(Pda1Na+zz=ur8%w~HZGG_4)k6nPR(TM?OZv@T#P+3CsLW8%IQtEq zab?Z~1n61xAOH8*4YLj}QWy%QzypwG-qGn5X{IIS%|9pYv9|YYGO}|LBh2JD@>?Y( zV$dXKv^M4kg+W44;YXY- zbK?j=h0F9spCUMa65(f)uwojqcX*{F#9|E_$k)3ZJ1%M0aosI*zxB15Wr<-7{T2+v5MSic}#tdE1ZBOw>Yg6a)f zT3=gF-yyggNDv5kgooe)l4IYdy*Zl|4$MC!gR%*804zU-FM%Sr?Xy(2@hitxBxZRo z5@ZiFlj7bzQ@Naam+hXvT(S4AL!fhv*&<7%t9O(h<5nNIGi!xdW7L0SuFuvs&Jo3# z0hWhDK}v70L-f-pF^-L=Lh-nUo!%EoL1s}F#374|uDaaS%><5E)Wb45c=;HLu(J#Isy1tlkzOlPh)xG={k8$^bjHAK`l) zr6`}4_~m_V-BBkH;shHwM? z0nX6|NfCEQsiWCgIr@|hus*MuGW>^T%7=ji=|_A-K0@z=abzEn%or&v+sKHAEfd2y zFp%K1^bDVrgX9KfK7U^6zy=VwgBKA$8zO>=s=FKIT`_xh!q|ba^*rJ`*Ck7`=6pI;3Q0_iNnwVh{YVudPmndltht zg>srLwXbh5iLspmS~8ceGiO?vawrAb70mKuF{8$HL!#D3i{UY=C60;oJ&X)w0sPt* z_@V32?;dq10pPW1cBni=057={d)D&0pJ`RG)y^W*%3=n8iovhKR@T@~$O~ZDDyr#q z;MpG)nb%t%S3~0jtww7oiQxcF&{I`7&|O#CN)>`I&`V>xD64uJk{W$^yiK|`QmEH$ z%4^6i=&Q^d@AM1-GH9*uox2jtXnCJB`hh}e{&sBHaypDEA6IMfXae&vOg}&BL}#Kk zOCus&B$Fer7Hf;a%HPq4?oVf-$SQNhe~){M8V6oKft#EE|N8Z4kzzdlrJMSmQap5b zir=_m>S%#1W8(l8ME}0@?mw_Fq5){JSK(M~k^0MD!A)=xuAr?nIK7)54aGp4$dCSu zT#0fHf&qF6gP}Ax0#fVFF4M5&a?eCRakN;ij*|5!Ow(Syd-nrWm(RojEO2&Q19%3P zA2we~$W5KO=-&i~2$|c;H&5F=qaYbHM4j9uU5PReflf!ktiEl-0s>-uoMC8U8Z8lz z4-bjB#}+E&7V+KX^zTd1e*nA&#(`{L>_(V8XLHcN;;r-I=d&6GVaMLN6@#7<|Im=Y z!02#xaCqoxcBlgUTAkh@%AaAX zTbmrxK&%9>E7v}W3X#d=lTLDyqGWBT52bJ_yxT1NP%(QzjJW<*G;57%7V0pn7?opp z@+0syiPX&AhJ^+iS~8t9{W>Dn+Ka^beHE;}c}bYE{2vl|hN z6^!b!-wPrvOL_(O--Px`dXgD{dHx^s;bx3tw%Kg>u918du>0KjV$@wTnLWVcbiR4X z-yG4In^0+_=`NmLn!i6+^tCeX*=^K}-BoL~;^wJ@V39VeEJbHHEHRNaq1$nmF`Z-W z9nk50Y?#t+rUYN+)s@ulyH0c~~>(D~_%{uui z{o71;BW2vEJ=>mD9i!AC6m#HQ{%^P76>{wE9ykLyVkPR5*o57=%C>6hSv(imSqevn z<61FG&9%TmYpVW0t8jQk)ux4zG5X@2Q%R(QIMWq&W-9bdm(2_aEa}1zxxp2XTNJDf z6P$9h;R^PqZLCe|j|u2?`3FoIBhy=|!x7;P#qh`~>1%IPg=&R1mS~3pZgVVg=CaMq zt^W*;EZsb2F!tNh(k9fVMDm^!vweWGRqv9qRKghj^r+=%*+oXd823}PeAMGjA`4Ug z#_E#qKs87^>36!;qMtrcV>2E7;kp1b_y+hVSBiI%2xFxb1R&IUeYV?dM3*f9v0}Q19!8tt4x{Br2RLN*dp!x1tmpuBf~9*Psz+dgj#tkeKK4F9dKog z;F!R65)OD9jW*6qS2jA6TajHBxeN(FkBL*zVCDmb{uJ^HW>dE`EuW^`O9;d_kL7@Z z6k}ryQT<_l9?r2rC_T-166OIHhd*weZnDk;7+iFZM&Z!Em`3qsxaKGkauP0c#|}CD z6bnjq(%D1|Z|Xt^iUWKOo4rS*hQ&kO;ZMmdr>!UxohaMS;c&Q)pj54C-_K^Ha_X>f1?y z#1tXH^`D4l#||*tJ;FZS%^CIKJSvNRjv+m!?oBL&N!e$4g$*8k;UTERm`RStv-gFr zNkha_*K8}wL?y^IYzyuWOIdF%!sXRdrwJZuh4e?}Q>~81MRT?ii8j3R3!&Jt3m~;R z$0xz+ST-oy@#4kv5Z^&O{#XRywqZCmss!`m>z%yLyaaO)c{Kls>fqm%^nbTSTOB~7_&blaUPB5P-S)H(L(q(7Zh;$d|T(@@Jz?yaM%~suS zNPcS8d471be`NFeXsq340!pvd+*-d4keI=AIc2K zz1;dTR+aKVuYOG5@Lx;k|JhY6mj$j_qq7@Pvwm-l);6s_&+Be-*OOhEwGSu78pexM zx0x$SyfdK8R^3?XC_OOFV*dZnn|*Wb{;=ppgfyc`4h8xo$aPr4IMar>qnUX%aX{2! zi5;ML#-}W{F=L@rXg5p95c!p^ca3qAGp6(ny+~+6AL>g3+i13fe#w9f+U(k}74hYE z!Qr5YCRRG-7vv*aCUt4@h@Hq*7~ecL+Up$+iJ%O+88-s^RsR(Xv}9z&Dl$B&J+eR7 z-af>({QvKAU%iy!+PXG4H6z2SxP%E8V&VFdA3tS|ZA)X{G2fknpaVs*WD?dR6>Eyk znuv+UM8A09D!p<=Z2Rm+#ku0s3$8S_)@j;`=qPJ5xEydJXQXDym5XXgbxO3&rmuWL z-)c2O7_97K$zHxFz(p)2xqSRcNDDZullg4UNFQUSLSt1%B`qld%4}M$Hai%tG8=jA zwGiri=9Z(}6OkC$USF2-Buzm)ai5E|GB~Udg$k?LvKQY9C>9H3J9>KBXKJ%&q0QOB zqvy}>@=b-5&|w!bS>&GFhe-WQvi6PEzg`IUd3MV|euI9WhqJa`h>Z;j< z`0YnpE*a+8?>R<`?#mGK?RiChZ27Pp_-ZnFl zxlmTS=jpgl3giz8>L1~U9{1vh?#ljJ5BRV=QgMlI;$Ppik~DQJ<2=O)9-k*T5?L1B zl~@?ynY39#&`@Lg~*G;e0?KVzP!ClCT(?URkD-(NrhcmCWX)DRg3eDD0a^*YD!Kl}*T zv!;CQ007LX+iF5I$@@*1n)UkG(sH3mN&7Xn(UMf0%=gWcl%l7`$XmZiB^^&r5+eZn zPg`8?bb2IK5uJj$;jv?>h{Fmbs zGt;n(y_Rp7_u=LN-!+XDthQpX(n!lSJ)@JPHchD!sOhUHGb}_-!BCOW@2$wNsUovKFf!AQj0vQ5C_Pmb zn7HmTm!x2Jo#$lY4t)*zu5+;iDt7%bXkzLW?kX8+w+3!Du7Tm=2@DsfFkF;kxF}g@ zt=NsxVhcu#c#IbRVi~#-4_HP<(skuwBk6*Quu&v|0Z0)PVk7B^DlkrZt`Llq9w;2+ zBEA>=BA`q>BhLf0~? z<~9w1g*bp{La3h)7(G8tEOaednpM5`ZwHgj8hKY-;O2Hez$IH_nIi7NU=c2y>-B(CUxiHam`8p7Me z1w??`HcEj-*iN#CRkczPu?X9d9%Q$*gDR4Yj(BzCjjH@80sD%KsU0eVtg0zxiUTn2 ziOskJa6gnpawpu^Kbce*hLE=Li(IXLA&EU-h#(kJJq_XRE|R>CxTk+Qt#k{BVSeer z&xi+HKR;Jd#lI`>?B_G~gTK<+wi*RPQaj`{{{*!G&RL5PmsSJ>LwcqLnZFGD9$z{5 z)!2K%j=O1zUms8#s`i3($ zxSkz3aWsN=oHbL?$Q#cV(Ur4*zO3yzFFd!4KXUTQS&uvK;@R&RC_nS83%))y_`)v_ zFCP(e1MbAdE`P_R*IxFS-&?m>zp)|PEE4UBp~OqJVYVfu+xasUZ*q8J6)1p*0_9hwR25z{pL;}r;t0y+bE_KBE_A;pztUWlz2)O zrHs-@>86ZOeo|3XEY*%mp)#ogY7{k*nnQD@dC^!jDJ_UWXv=_8bG}mo2?*zUR6B!XRH;6V&J!a||Q|q_)-kFNEIE;Jo^7NyopF91A>Cf%0 zeBA823~Jxq_ww-+x1`lyI{U`i&+b3A|K|QDPXH@?y8FSnV^Q+|MH3!V190TIc6_Y= z1ovp~dslz9p;JlBHdFj9&qnSdqWdTQ)Y|RnQ^0pPcLV}6rRAb+pKY!>#$$Zxn7I?c zw((3a_6)IcqtX=Wy0ooFr3Pb=j=7lBB1LUh>JL=u>r7J`Vj_idm(zMjLwW! zuw3z3l5Ia9FHYRJyM)c|JR-@J4kl@K*`TpCY?z06#fq2jwd)>#aaUMbU}F>!B%=vl zYbc=L{>r>y1@1{VA2ca*GgeeJ-7sXCCE&T_SQ0vx=|Tuyw`=X0FiFHRT%A;kZc^!f zb5St7FfrH)k){xl5u>b@QW>IKsz~>IghbG0C0HZ+Kh+o&tnvJ+8;_=d2L##-9S$w* z8o(2siae+y&@yY(qD_3@+K%V>L73*{&ZSePyqX|llnvVxk>)JXsM<0}L%$`G%N3DB z3}caUqOczjpd%8+mJ#w4f)6l*%!mmkFzAXdrLO5V83!S-#J9{mAMV5QNE~dv^>;sd zZF%W%b!BDQcTJhc8{O{UGZ5QCNMWoIr^oJ3!;lq<09c=X>e+I|vsC>dT_8L2Y$ik! zaNFPW$m}r83MWX2sCpS7Q~&?ib;fj-u4kxVh>UQGq${^3)lH>b0>SuU?w}nNS4_Sj zY1MyDPenG$ZJ6uJcIm38=w@pJ4^0{xXkhNY-lu3OPdn&(Iar04}RS?I*~nz7#Yk6R0#d0#M6&=>XSkJ9zz6Kd3a?H~aOug#>wR4OieZX5eYX#R?4P>8{bHq=CxVps?rh6Y}w z13nL#<{u_;HrTmH$XKh=ySXolp03fcTU$}vMR5v38o!WK+p9L4^#pa3l@s?CDQY3m z;hYNAd0b|2iiGzAX6Ozo{kM>_eV$Le_`k3HGJi1c7diyWVysK}D`Q8Jxarb8`25Uz z=*gYx-TY&W1RTiV^VAdIwF zOAufOwu<1s>qcqOL~62$q#CyEq(p*16KFv|qZ-FhC4Dt}pKY+shJ@$WrP5gBViZY) zvy9dt+yf^!O2!;6D_)r9B?>MOpw&WfWH`n&P;SBU7CR+zHRI8HxzZ&rVOzd8stl6TVnU-+ z>jMg2nHP%!>^!p3&s0Se)T<>-S8|eOo8M0fW!Mb+X&EBeUSL3f^Y>_^5v9D?=huVI zl;$%Qd!-a-QX4h1y9I|e7cqYW=aV&l1S^^%Khs68S3K!2YSk9Z%2qxKCr-TJM{GzR z@?BEeQQHt$V%|@HRZ|aAN*fkpv>q~8x%7YdQ$N+{MJh+HEN-a+*L{_q*>83`&6@8A zrpy59uZc$*v69;DDlCTKiknW9YH%$(iC0;t5!8JOhBxBGsTa`_)5l=d;xIg(lek#=zg9EIyth!n7e={3~6HCVS zx#g_CDC+^HfLk5|db-j7t<_`23^C=<;$$6W8@|Ko~R+Y7yzmuVeNOG-NgbTR0 zvUCkug)j%SNQL(MJPDzZK@Peghy<0=A{HxnKh750g1f87(P)#`ab8~4yiI$<(nzPQ zTqc-PCdcjJlxB!V+aPvY=vH%L ztINoWo#}OzW%9vn+tSPbfszN^g2450`ak9KWY0s7Z#9%V#!Ot|bm!;eaoeK1wRuB# zO1*>(I%s4&`_FD_KK7wy6Q8L|Unq^+Oo%T*Wibd67A3~J{%@iAq>F!h!ouSJAmGsi zv=W)G`PmK>ka28JelQr*{Cl1I_<{v=ftZuG%s;MMFU6&27ZOPRskwU!4OHgbiS~c$ zqZbaHN_Y^4Oq>7e1qSy%Ai=um8Yk)}>23;MthJQvN1d0Yl_TbF?8n|BK>WI$r^%?H z!cI9>w<@muwbY`LoehRh&Q}la&2FvM;@Ed|76%0cEmUUjK7G$H{zKy*Vek1Xu8nL% zJsx-r`pSV6o~8b8xa`ADN!}Utk-x54eW-= zyFD5uKQ$MO<*J0Uo9U^lvlK<2J3gNa%|hhXX#$)QfL9oLUh1;IiH{9g5MKhNQ=g-m zH!qpGsz{Ejo!9QW@kWhxA~7OQX^5#n za1dprlSrqDjKU-bN-l(yN-HIZ02m-T)pOP#?r!*oSd4OJ13$De|0H5p z#fdg$bz=sme}`NBE!Agfio}EAXtJm`)u0r`)zPwI84nt9xzD*-@QSI*93yaW zS+~5~RXIw39hkAW>&5ZiWGq`~P}&I5U-4QSH9LqBM%90cu8P#)cG8*POD7OxQ z2$Jpko#s3phR5+Kx2jR6Hzsim9Sj=^nmgT7y7hU6w$dfXPIR(g0N{Im5N%}+TWYf+ zGry#?S$$Zq%mvlZuh=W#9Tv;xG())S{4amrlMdr zdJ_OekNNF|gDTMk3gvl8U^wM0O2pr(R|8O~c&<|kElYuCeLJ2jMbdb#uHZo zabLsk(s3e)gDtUyZM26umvzEW)RfN0r@)Cm{-+G3*oiPT2SjP(R8!r zBeO7PVF(5vO@kl&&*+i4O~w8vHsecwA^T3Md`!uzVVR~Xa%3SocTw%pUe-^u&)gfg ztbGZ(hu9qZJwf0BeldCQ6I%45LPNC8{uw|>=3`V41$6DTsf>o%jWZ{_!*Ekj4n!Eo zWc@^_F7YBDE>#qkfCOhQO}&p*7=?o&FWO3EFa$$iL@)SSp+?=Pk#}@f06Qs_pDD@? zaZamIgzkDHK-NfSeZXJ&ZCh~14shIT;EfrbBLyjA)^G<9;;f)b-Y4+Kf}a^$N;81%ZV!lbs8>CcaI%7Rwu~$5W)Y*k4VK2U(>i)WCuW!gNd&`i zJ=z=upVDw|7j2}qDo9VV2w|gOy2h-F_XrzWMu@3FFm_;t` zU#NPtDm{CY8Yfxql3f_XSx(lSUKkbC@%~PS6DPb=aqi}LNzp(Q1%dBL4tOr!thq{| zEve(XU<4)jXw;AM11D?@#{^Z{0aFA?F1Q@IW$$u27c_bc{bnoY93_F1dxi?HB_{MH zu)PeBZ{W>&RlO=`L3~VV4krvlZ)Me*w!-9fj&!6KS9U{egU|PT)0w({zP22sy&~}* z1VNe?YrWr^&jlga6wag9kGhN9-mooVm%}?9Qn+L!GH49yKX6q-cenY}UPC3pePyvE z+J*6l=(=I(5{IOjgqi@|+Ua2;-i%L6sdRANyJjm0d;36_mYP|-bB0iaS`OQ_cH9bG z-wpq}^hl>P)QSlvpi5DLT80ijyu*64RX`w*dTkS*J(v2#x}V1$yq*TO?T#u5x_0Q`^dD=@JHfz$&toP4sTflv$aL<*e$T+uYh_NX*Rh5#(s|<=8;nvm z2gSZEdm_9qe=9xkR~Hm@an8>|)Nw=qV2|AxZmbR02wE;_*QVZH-Q!O*V^hPQp?9v>aI*MZTG z#-w-l$=%VEMEiehVTC>DKWa!L&`Mp}G-({C+k8f|EV2H7gcK#AH5)xW4#DyYaN)tJ za5*n}Em)`XOD8P9*JeA5&IwA??ROhNB}$<4d23OTWJNWqElR!SbS+qPWnQ|X zSIDaqVtt5|hA$l`kxurG0xSKp4@YWz(svhTnU;OAzU0NlDFGIGTXWE@vJ@$=pNl!q z-#_6ko&n@sw%^?Znrt4Mr%xVr^tSX5Lg`5+;3fnq#0$M05xE?6&nh5T?CNpvYWql#Otl zp+7o@t2eD_g07B(!@CAPGpk;2$iD|>&cY*-waJ9azVM4kND2|ugw+W*$qX{ebaEI^ z*M=*aAEmnv3~w!LSKEvENGK>=<1*+-d6s2qv5l6Za9L3yD2l*P?j%NAhe`TkmYQ?L zne(H|3v!`Yx5XB7@0- z{_k|H>~FT=>KXI}=?J4V>@mCTWYKWKcCWJ^JZm)Qv|>YcYE6g4N#-v`se>|3w(94+ z>BeKa+NkJ4F?Gjzaq>=dc@cIZ1R%4u1&DODwb23K(t@Q5zQP6}L%Wd7_Fw@3mL}1v z^@vIcnLqow%GtR~QwPtWt9qrs79v{UOpSco3{7x$&Wwmy*}`o;kH;XpyEwW~Lc7Us zPTP0vJAU!ny(fSD4B{}mHRw|flT(KeI zB)VGR=~}zJv>=FLsf~&11H#di23UYZyS^c$xR8MG49EPfYYVX=lp0U#|Fb@KH`u#% z(5^VSagcQ2q$+#)AGaW@_w3R3f45t1y{jVmSo zG7D^yBnbDiiSUgkqWeW+IGApe%T97UT!J>{V_pw}!FJn=lQgiE8A0T+vPA|7(kYi~ zt66_gbc1&2snm3~MxJAwYL{JBj7gTc5f^nQD_@nn;U!r;zbd9SWK|X;f@T;Lkoz{& z1R8-Kpi_|Ci$>MSBmYqcVHB-4noYRV?Z7y6ls!@{FODMDkkO(QL2GVFD}-OVyHQ4M zS)fV0?9`xYU1D*96f`FvZevaymTsVfP54nyJ$+8^H(_A>b;+2JeQ&d7mofs~AgT&+ z&AoM8-O%_~tk>hYeEE_m+OT|Q+Hn(BJgULpIy`adgKzt0?ip!?UWul@KL(jU7x*@r)IPIBBrki$0>@-3%Cy>V~w+H)>f_5;%YE8ZEdBnGTA zkgb5fe7A^!JuUk~DBX`9d_dF}MxCF(+CwrYo#6>NTt(76rW-%jnSjp_iWExygVDBg&SHlbv%;E_D$2_zaJx* zrrsI5mwk=L8s1#J-TL6_yFA{+7vwab z2Edki$X))?ICR~mXZlE9{b5VDf(uA8Qd3f6V-qqHf?TYZb3$PXM8?W(UQYKY1p|%oiwSkt@1W z-g&q|6F{RK8$7Nj=;ocoD`9VIQ6NKrjI!1a#t2&*t@=^YmZ@t%Jn?m`@wW+++886~ zwhQyAU|P0gTMA3&n6t@W3hFhN$c4En-~`DlMqCD2pw3+I(>6|XW>_>Kt_)F5H=ZXo zDgu+wOQp8r6-;G^N^cn0iEUp4U~pw_Ix+HtD_vM~bM5xs=-jFE-3$gusBPjf?X}Di zD~!~pBtPvBNUlOTLE^Db6WR@Px^z_8+9~!9Gp_2E-iW+@RJB^sxa)gdmCuBTAXBEc zr#KF19tjeo_+AgW6cBuX++a)yDLJDZWn#~X6r8G#4N&I_v2rzzfeN#F?>kmgHcN1|^54s&N!oaaTHjGS6B zWd1*rT5h;$=3#5h0S>Rm911%x)ZO0T0_wDTaHT+uLnTE*!i7@AHyilMj36#@dOpGt zC8(61(AS$8pcaq29dEw%(O%}RJ>hdWlR)_BkY;mx_NDn6mIPdPT7blh4}+Gz>p%)Mvrfjd9ej$@f#oNsYalDuhJVKy8q=r5rCZY!|-?qW@a z;o}yA!yOpqb+BnFNq5p|yjHW*umtQ%;o@4@y%llMu!j#aRsaSoO&lZPT-&UKp()F; zbm651Jd20nE{cj)G`4>pv_{J;(`bewSswIqIM6x7Fd%|R*mAaew(>^dhZ;l_Hf(sO zr4H86ALy%VWPZ#|WA4KX+zT$gXTNm5+}(&G2|xny?7@7^mWXuFT`!GdNmg`Jg>Hr{ z);J9ezjlvOGq2UkzkE}V+3iTDC8^)r@y8pzRScP&nzmQ1+v|MuHZ_f&xy&u9Q>48k z*^40)fuKYHk>QBo#${`hGBGEL-tR)CN{~^Wg(GR4VjgWw+`{kD3F?X1-2l{s%{t!7~>^1 z#4X^nZky!N-RQLBpY$a-?GY$tHWhdlq)V5NQ_brM(&O<)Y3Yt0Y;!+G;dIB>k)?k| z@p))s|!mi$_nxd!WqOjE$rn64TrB^ zzeTgA_cca_2KxGF6aqH2=jZE>KfZqc`t8$)xBve48W<8oGkkU5|221Hthuve-OlNU zZy+azNS&IIlAu8Id|i814tB{;h=g^$G#@2s=^@F`4~%&Wi|m=>n_+qq zfu9Hj4@0j8-E%~WuB(7f?B0n@=s~R$_$mXnd>d(2MM=J8wb!FWQ|O^#exQYrLJY~i zu>8MQ-swDvErpf9(Q}U6VNsKKmKFR%cDFHd1Ky~~dT1>v{!01go50XD!wrWWx{^{2 z+m!xr^YL#bkV{5%_l=Py{5Mc<+6t~F=)mdxkea3l7!WBXj4@GO9MD@aWO8s^G$R$! z!KMu~es%)gNPoxEI#FS?=FF=EZ_*^m&QT~_3c6NR#jxEl>Ai+fhfz72#7RIWYhA#UymOG#l`Tr2tVT>R zu?U!^abHd2iE=ZOn^l3Pb5a!zH@a92Zz&Pr2rVnmr)aJ-QfaNEMWkRjOXn#LIDw|t zjce&L`KBB6_eyzL`Hlu*$Bzdc?)JQs&VGA^}$iL1IL+Td; zw8kE`K~U~tpp0{NXN-e1auvf%iXuxQhXI-41S>m^5J?Qig4N3Gl_1zBzkBPtZKdT7 z0i@D0efn#1Tiz+v{!~x|=4!*ORJ?7xAgiY4Pgs(8$!=G9x**?k2aDXDEqGM|WmAj; zSiRouLZl2r@Id{=&Vpdcov8-!I?K{X&xc#v6qybY6AsJ$3?o$#cc_k4%VFZ9Ql-G= z;r4(O00AN|MuL8CEtNCbqbs zTHdeps^Av+g7=`@1;e!H ziU%gTUW2Q-Y(`mR2la@0aNfZyh~*njJv(YTxEe8$ZRVU~B{4ed5(X4fLBi=QCa~;8 zpPt)LfT<0+34&la7^RGe12z7`FRsN~n?F8xCKwU}7nyHEZ=<-@Hfe7`% z6tYyk6`3L?@0u87N0Q{#lUCN+m!*Csfn#MS5?VgN{hrTB(TlrNimKIpst8*aS@P1@ zzmCrC(gzqEwtU09s;{0+ii%-dmM#k9aA6l=i7uMn_}? zPxqvB*2l9n&B|R!SPKxrYRzZBb+BdI2Kj17N!si%l?NP&#+14AbajlE5F{8 zevzI))9(6FFF%i`)F_vVVVfH}1!#K7g64;wO+LV$?g8%LMz%1kk5mjVbAN3F%CCF< zv0@JPX4GFH(5lI2+D0Us^J>40qW0W{Aezumik*|246j*koDD!80~3mtR9)l#3Xf(= zd(4V}nsLNJ{O;QiH~}G_##5iylo`09+$+9u-@on4lEh$OTWUz7DhNfRfk#fs<3KS4 zOVbe$#CS8!JAc6l=lL6D{lz6otk*rNkVNA<&Y%CXKOUV(n1t(RpjY5>1!ZejR5~fE zO2oVdhCs+yI48)evKG*YDCUu2Kf!NT5BMxL59#f;%aQQ%k#E;-E+Rs+t9Ip$@?K?2HhaE=7PcWl=X_t{En zYl}!KjUXHWU4;F^(z8cLs%={8F}s}T-d(vGedXGL+}nTnSfCv{iM`>sQSXgQV=h2$ zwh-ugxGOh5sc~fOqiXxg-#zk7;)(Ee|LFa_z9|g)CE=F^E?%CFJ&H9t8oTCFl%TNK z@i7erYg9C8F=x9A44vbI_SUu=WK&r#J_$|`XJN?~xqJI;M!jCd(}Lz`(ro>*Y!~4~ z1)JNB`Lhrrp$%lRx!OL2UBurTK+mMmioDl5?9sLkQrh zGkT-@Ak|r)CdA=uY_WS)+4;Y)Z+01jKmM}3n-bxACR?4YW+x0I*OC|XtKOELn@@w; zI~8RjkjUyc9&DDR3)lbOxJ^K$Fi4AY zZB@^CXTnLBbU*OID>fiQ9 zh7_!-J*B-gOEcWQh)AKp^&`th%a7yGlGs`IQae&3p_ZTsV2S{Dw#OvR@o>Q<_mdol zn?W{6iA;zkhJazvf&r>q_cw3r5TML(qAE1R-Obw(gcc;LU8KJ(RuDEE5cZ5mS7r{! zgpP_818+iLTYC}RjXTGfjVVV%L;LK@rF|E^)w%-wwHS~1LI8KHIAfD*0cmO)`DX@N zx3PbcbCcswI_`u!)=M1f4yClW$4>Zdn&dB-oVqjkMzmC}b-_rXJnPg9C8H4nX~Y02;LbLhQ<8} zbz?>vTU=}PM*Vi^2Vr0-T&~fAk9A(79j(fnV!fp;r|83zwRalX$Iyuxq#GDqQ^R&%AXQm_7N z63&tryu@%)aN`v;G{v&m9-%t(0>>50mjp>Oooc-Wy#Hj9!P2MAuxWcQo2Tb#9J-*-S^ zfYqD`7|ey*#F*~kyK8DZcIwUU@p64xvVt&bYjDoy*V>cmCknp6Wg_8Ff)TFE{ylq~ z(Oi#LWGjqfm6}RDepdwrLU>L~Oc0#2HblRR5!un4_hJxGC@mPon61E*0p&s=%f*zo zd?pC=NZNayL>_RSwa4_ba$}tmLgpWWV~bIRF491o%Ci(%6eUHoK{)8Miq)fLZ$eV! z*$8AP^^GsHNVVf~k!8}!R0?8;X$qR~ZN=m}ank#4yk&-=O%*sMNb*rcb|g7{Q>{N{ zAkV9oIBStt8{S;B?j4Uy*(3{3yXqa)DhW^H<2+Hvfb*>a{%DA zhAEO+fuS@+q*)WYFNu1!h12SYB^$#j?0Xs7et#hoi8jfF$uYgdPq!Yp(pkh?TX~3A zLK++kk|I!OYFBG2xm+o=S}V&d9UQyO=yz)od~U`U(r)N`2(>j_gn-62`x|8X@1U-v zh6n?HYi! zT$LWl!?-hAps2+_FZ8Y2{cB)yOrCI9UR2b#O+~uQOmS^Ej@O%w4uXriW>q?Nnbj$O`J6R>KyM@^)V%(RQQRT`cEEX~){+N3=Ei((E@Y2no1lc9KEn zm`Cf-ghV+E0RR&Q55pqU%G2rftreE7ga!cT>v-ev?-ixo#`N&W$&t*b+H8m{WVOie z+aCOryxkMX6pELQdX)ahlqKdxEf^#oQ>m2UdmvmPCux=CwTZyMuIfAO&3U)*O<~UFGkrMWj*mVJ&xRqQWDh!3aIukLXzovnBnetn+|Ic1 z2zb`0--tYkWoc9h8l4GKjX20e&yNdabGfD&MrGH*D0>L7vO^-a zIxVKwdJ7R(GCXsMRU5AHh}f*@ilUaAT_M@r8Y{Qn>JR5x(6HUHEgui+Ro;rn3&qW7 zunMTLsP#Bg({!`#`fkfuG>Ma@h%_~gSMX-5!^)=X*s8?S3`>y&!SDy}RrF*lzZEq5 zy(mGEm?^ZvV>zB@>59*s7kpfJqa=qY8?8Q*C5a#rTgCFY!=V z+KVdm`f>SA`<+NTMPksF!N8%F{0L<}I^cL3hw~f;NGD8zR<3j(|3H$nHNnY`EsmDS zlnKc>1tk^b6-9a3$rRL$lSlA^eG~`*&9}xC=%(r!gSM)84%89K48-LYS`5^xPtz1d5^zxlr)oc28wlszT1Q*#ACoY)bVSpftBU{o1AJ88 zTM=H)G}%ic-!+~3b4JGM)_!=9=-;Hb+r_!~ei@0mNm@hQ>EVsFQhZf{q-TDK58p z0wx^ib5_tyog>OoZq|%)x*f&|0Vwf3pL?#Q8-Cg!I+kLIMf@W#&oPlukf35|snV6* zY!9rBfohu%SuWqJhQzT1b za+cvWCri-FL^R6LQa zgPxF5dqHfs#LJ^6aexz#J>T6=)nOQgwxCV_Y3~;A(BJ5Vv4T&-DQF#}E!453gf{JY zRsMCMSjZ}Y^J&AqyGyy@;T+by zl#-hD`tW=1=2T|Jr#)ynQlf%v_}HJ#?JFK-_V(l-@~fYVxkuLu zL5FUA1`J!RNBc@)|7ibEzV-}_`R6WQK6eRr@Y(UV*&-F;;F#YjZ0!s0jm;F7i7cl2)$BqKGP-AU?Xw9J|+-Wd7;D@5?lC z{@mGcOAB>>eZH+kp_^uD9EDNh>$VO2D9d}#o}4&I!hCHfJLcKs!}ojETZsK2ZLT8Dv9|&rHAG>-B2BMMGj;djYLbzk&_c=ZN=Hx!-X#H>iRs-W1Z0NyydyH2qJTatpTs}5c~y-43kr=N!5J(Rs%n%}H7{}rQq?SJW|f25N&^TjxflQgCNN`G^Gv!`+> z$@#tEG>Z3Y-9i1gCDuw0sr6OWvUNozNtIZ=?%Da*)Vx-*HWz+!$f=j_H>#E@Kz!G0 zmocn5HUK8_ni{?Sz~QQNi4RV*c>M{N@5}Nh$c;IVPk@KK4|F@7R-+b2)yR_RqUaXD zRMe-m9GS`tOlBF1q8U!mYGnGHs!W2t7MlXuC11&m zi`bQgSQY3jE0kKO8t61dP_KkHL1%|lee9y&Rz%B4v?w_dXZA>_F-4$7pU)YdEV}03 zH7*H;9EIKf$Qx8160B$h1wp&PCjWO=Vgw4NvNS8PJsxu$uY{%C^O^S+5@ znNx`cuq`;L*7Cd^#t3|0GXm&gkmvd_YEOJ`F#mc;wHGqbQQ2se?3%}Rp&F|1bS5vI zq6IBnsMk7u$DBAz&(eD&x;Wy|dDYp|x#XeP0W*&C`#jv*^ zM@@IqQFYNy!dtoGS>gCYEoj<3Z`E3Vj)JlU#8M4yTbE}@iW4Nui#I4cmNX?9ejfD` zDep5wk-42}J`)d_9!uvd#$tmU%8Myyx?#Oxmg2CYuvngwFNVEA)d8?93k1n1K(@9b z7?vfFG97>ip1JYt*nJxbNG_C|#^PbyoXLrmPc(E0_5JQqy+>{FZ1T$EP;-QwPFa=2 z^82Cg9;ijm!8)Fsmh8vC3!$?QFVCm7zBtd`-0h4DX*zB=RG7u5HkV5thnfEve~jH| zpFH4lHeY@GxHR*s`#E|%0Z+2|Ykdg<`Vivwi`?R}FOXj<{KW(;Wy_oA;DuuTOv$at zXN&n4@2eb3yi*hT8L0XfVT#$~t6_nD^R7?pJS+-$cZzOKIHRQ445XAgu(t^3;cO$? zSc-1<#`E%5{_Df9oY1{a|aTKOZ;iS_GEGya>|cHXUvIm za8IZ+*CkG?wH87mM|hT(w8U97G5aF)T}{^*3-k;ss6_3*AsCT=je1qn_=8DDMx&`np~sH5QbHY)o*X zVpxu2*`~yiMOt^9vlJ!zVjbEVtL=0ljk0(4HIac!a?qqLEg6HuY_NABCJza@$Q8(6 z#c|Q_MsYkBYW)qOqVqthvIxm$+g7mb3rj+vHRYpqn}ojS1@U96uBmY(obGuo5v_T} z#E}?9vBn_9(5>T0QLIHB`L<;krf&L4(dYS8Hw-CRQ%_Uk4#nX3ywRlv)r*Us?BXeN zIg9}zy&Qn7l`J@R`#NpuI5wNW+XeztEz6rb&z`&BW4|LQm{RX7 zaKOldlfvnHz6ruD_VcHUoC$X`hwtQ!CXPV6za;Cvn6iw*2plbERT+z>03Iq^5(JUW zB_$f3E-YPnr6BSI#z4Cn?;L16jpTs1h)bkc!`v}ser$rXXv@s8BpvkQygyLoMiep! z4F;fB3dL`cIkx5cs{?MT@_)f<+A>)-=5*s3l7#B=w3LjTf|^nrF`5yF%G1>>s@1Z$ zqhx*d>a8mm4t%PueYl$OBWq24tg^rxUZd|Tx&F_^ z>DWWM;p(*hEPOq=D$Z^f3&7Jwi~Smdz#VgcTsYu+dieudzpLy&4RSy|o!=knjI95R ztHJ++mXB-AljX-f5F6Df-6zq!$}2O)C3)vhy19{BKHGy0HcQ^$>prP^aq?Rs2j_>qlUFrj|!&OoDcBL%x@lJ6`Qi>b|0)FpK&Rc(K(vfl}`>f@Y+KUjSG0)7-XeZrMtJ`}rzkB0T z`5gf@6v8GxTl@I*m}6D**|VZEY4E3Ia_q(b*EaXU!|Z0lIK}MTTfB{)e#9?+%_gk* zl*DX{?0RtF$*uf-s52it6}YiikvN#@pLL(qQBgwr7!p$7{{fw9a_NKcM);=ezj(m2 z96a^+Hr{Q`n^F#0$WRu=vT0)c!1qr8(e&7bqtZ0qTB$EBcM#F^`)d;k(huhfH9{Uh zaY@l+9*0xg1>LwCrAP{iYdR_m<&Gew>t}?X33?dTdcz6vSlRrd}Kd>@2VX2X-%Q#B*X`@1&t;$k8Y?%FUYUad`)V2t5oGIpWK-OfTTAlq|l z%R7m&1Y{Y)d`wq33 zAZp|GdGL@&U~o}OhJ(EpJWXUkK6Gsqgg%({_rH-!)h*{}9A&+&hm;F_ujH&%0tfG8 z$Kne-N5DYRjcus1LQ&gK)|s79ERU7ezHk#5BZ810*?vmKQVLojq>vJ^%cSLVyaAF; zM0+3^zVURCDkKa6B85Kynik4AGK$QNpQ?mrZYwl>>JHTj*AkNxPH`))#uGUUJmXUW zFNX0c{m5y_1I;-sEF$!>*)RDx1s@@VP{jIyKbbvryLK|Ql%~(pS2{`_?xn`c;pl1t zjlZQiDwS6&#gBJ4S{x1rRjRTeX_}P|!^v~ru)U~u-T|bg5~XOG#Bd}>$@#`Gyj-#3 zY>0MZx`7W{3W=1GUC2DmZT73TE1rTeug@3q#dInyyLdSmssI%d07(DR|LZehV7aPUn-zu zv2W?B6Zd3Ueg1w7nW#-R#_zp(e$0u{4+s7|K4QJ-~D+ zfob7yHCg1YrBLxcmyJZJkNPUyZ)LO*9kbowIA}PxBsyzb9#4>b06LZTdy%CXNSdaW z^@$sfgMqJ#s{mM5>;knJZhMfHqQRL9E~vhzXK~{s-jn&CQzQXd(Rveo6}YAe9g0rTuo#X} zA#(+HOc&lmc3b|f{p+s7^D|+QP<(xwfQmp zw4dm*i29hl=n6n>Ho@z!M84`FS6hcM>)IcBDiTUkjKLvy) zTh!L$2vs%47&c#vbvRJdCm5cTJQxKC?8+0dFYC^YZW3(JXZ6IAgTc0Am ze)SpeI)hM>&l^J)OV&Rn5Y~{>>2*U4@g{|^(_|<*ww>;M+pryd_dM&nxT^C_sH-UC zRTcny;^Nd?Kk(L&gs7Zl-RlqV8PKa9;=LDfxjE#gmU37Bw*QY1dqmuOX@v)~`TF~}{~^pI z?>4_?$+YyGJ?pY5MXV~FmUpoP(pi!*WW3(MEZKZ1F(&`=Wx9c~L%Ow*Li>Z^0z2P~ ztBoe~`Y&9uLCU>&`kVW+yV%Xr*?=#=bN?^naH|E`Yg|Nl$N9BYSz?P~=TF{Mnaz%Y zWSIBFcl1<|L80X4rse+zZ};h9rM214Uc-O4J2QxahK`>tyKJ(qt|rJY)AcM#!5*x6 zQT1@z+h5JFv?Q1LFaxfsDGZ6=oTwNZvnkdLbv851XKUa-3fMD7km8Xj2}yxJv0KE! zN4|fphtx;9?hhBAH+A49_in2>2;wBovLx&8EIbP)%XD735>r3#uRO-g2z-UH*4W&j zW2sN-z_H^<0A9uYQ7^Pu0?uNTyzD;%2+|Rk*1sN zsNQbtg@^U)1nwuOcpf4@-HEKty_K8GoPnmRWM##r04}N4Rjv|=T!XbIFl$M6 z{MLVsbkL9OtlEne(X7~7B^tc|L*U`0j(|Fvd~GL~VzgRwv_*4#Kj>I;r6R7i;v5|% zqnj;wCazJV@-!u=0^j&X9QBXmedC{riw~v|r!m%BLDbQ&E4;o<&P|_s%3&4;C%3=b zPEyIH+`B!BiDZS->3+sw1dihrO|&Xk*N)r;!HS|-qZY88hn&X6j6tSk)ZwHff@FXc zCsT?+^LMsb^n_)awxxAn zLoJZqX8XP}g@S^^;52WOFbtzG3jBOC1@8j_a;c<@q7E!WQxxU+pkgZG=g@cbRSPo-+;gXe;NU6X}@E0GkdvQ<^155gY%c>7M{FB;4u1VV=D(L zM;xhCDtNx`INcAYTkPGbUf!aplWx@C1rj{3!?5=dYgUUzp+RXQLaC%!A&^o8uRFn6 zUYry=@RD=EIp?D5H6Zzlf;o`=WeFKYMTJRGe3FHw8Q#jqkwoI>=Z3gDlO60yWU9L@ zw}9r%^~_I5Sy4qojvD=Wj36nz)@fE99nbH#Raw#fG#IQf@O|NbCLZ1BblQ=t%HK!m z+SXDzLE3~zDG3yB*hEYv25VyBQ^G0^O7t> zma5ch)xdLI&r$_A+4JYmNxC34aavLhH;4y~Rb2&u7bmB17_`aCHc78U=&CI6I)R#w zg>&<%tXZx&mZ?iTgQGYJURmRo*RCoF95{lcnzro%F91kmK4=-95lx^mwypn5V4M-M zLG*Z1XmVI#1Yd+osnRNCnxnAwEK|WfIFyu2z zQ`ukmb&6u8%l2h^TD3FJ@$e}K+~Y2C3E-`E`ojg;5XNN`75&n&KOXatd&X-@PaSwD zc;z6YioO#_%n229h)~I#2qYi4gsuqZUMOL~G#%h4x%dc*EG8mN$%#t2r8q;A>YbGy zgM8j`Q5uTK;a&Q5G9y(GGamV=-kq1c`22s}p$NbK_pb_BjW{@S0+<mC0`{@V8hQEY(d@QEY$e9GO zx~`=wBz$~11e$CNI58Z(v&L}QRjwNa$J0Uy<%=;Z$l7Dtw#YPnjmdPiKy>T1fgIUs zb(~*O3g0Pbg#|AT{l>0F1L`e4Bbc`9+Ozo1zRW=@_vLmcx{o0*1!CfQW$?^XTKH!) z2tMq8ATl#KL#Y~9d5DWNJAW7Um_y)R@(QqhU(WkT{=)&i2g=2VBLU%Z7az7=-roRD>332v%#U1kabaj6T$yz48npt~u z3CsZ%Bfo3~jatDt6)&}s+PHC?eEv~gWDB$1D+MJ)nl84VgW%RxruU4i6Qn##b1m3A z=V!uYRTe6MArLoM5@(e5De9iLH*pVW_@T84&BO1#OYBhGque`n??kF{u>jE?#&Q=x z)-B^)Vu{+Ck`!Pht%TKjni3~*MWgXXLty666qH<1?=XwDz8V!ObXn_dcw4vTfn6dQ z3U=a~rYjT`-|xut6^ln>GB5eJi(C3>mzcrzq$e+z#o3+n&km^;U02nn@Vx^URK>`b zZ+O9{w-C;0=!#lkJ+easefVnVp*RTavzBRuam;aPanWwdq#r9*zJIS$R(IxIa-?3L zoV6cS+Ps*eb=&Lh+=*7CWi*vpaDWuNbN)h}r6~j|s;xDR zse}o9vQkNeO7TC6=&CI7YN81gbVCL)SYte-6^m0}5t)MXhRl}?&kw}$90N34Vc>i42Qi&lmt?!_&MxS1vT7id`pj zIhxLkmL6Zv&_T<{V}#MusYHx=BAL!!=`6<=S$RgeoF?@}in@->K7}0YwoRhVY>FO{%t9K{Uv`CEM)vwm>*wj z`$j(AO85AKRX>&<(%*ULSYOAtKjUhACg}If`ylKZLn0=a81Z9^l81L_=vl|H-w{D7 zo>A+#lS6BozF54#;x`NUTnt*1PkefPBM_e5s1H{lF9@OlOKmP(P0Ng1F@uF%2CLCq z6d=SFY88_&5N)OGq1%VLaCwHuk?ff(5Iy*CLI}Y#p^uiMmER-CVmusPDOAI?|E;bK zXBe%I^HTaX1}#PRQx8H{WZ!!e?~e%4dkzu(#zdfbMM+;v=$~O&y@9DF@ckezPTlE( z-H5A}%$7Jhqo&_BHBHqlU0_HQxn~Yjs0;yVuT)ex`sM;d5d@B*=rwu3kQmx-EGK)2rk?*ezPC}DW{h6ULV!Z5nM zzHB+fxGv1y#=F2B@E&4Uw>yo}zZME)@LdwY{Z#Ji)$PKBlOSeut9Y%w1E#vJ2<)sO zLi&=Vs4`JDw2JOvc^@?A!aNSM1;NNFrv~)}Ns$DI@LU-vo=oq}DMhAbzs>5^V$<}KC@1VN1V4$ z0?=q^tXwI3PVo*4l7>Pgk{S_9a5XoU6FV96YfB&$?F?D2vbIZiz(~ectwJ9DjmTKy z+2e@s9+uQzRpBnR&e3C1D|q~n1!@Q$L#QnEDR)w%vwEs<?1H2*a>!0CU2@({ONvTO>nm`j|i4%IIi0$2aYF!ao0Sqn-{%Gx+or>q0Miexx; z6*j{FpEBQ@04XL#7Px$t4X(K&TkNu1cKD=B_LwJL4!DPQipZa>gxYi}CxQ=7PJ-ee zIT>r0hn$504stenn9DgBL9*QN%z%yxm;Qm7J8;^hWU(Q@)Tz zlR~;V90~Vdq!besl@)cQ3S@LvnF?4|S};n3l?)%h3vV4HC*4x1Z1BK5#~JN7H60P+ zYF1)GsL)tu<%*GP!g(Uz==U!v2;Xt`;AbdP>ys(onk8w zj~6z1*+kAkrZQz0k=_+4C{kyhFKCTv5wp_PDNAZw`Afs)WiuA*Os4ZqL;Uqq=?it> zh{TCA7p~m6Bcq_U_kVx~PhPzF@WtSV$zOm#JbVH|B4QFDq(X%W7a>xVXfiS66k;i< z#EF*x!xR>d8FLo!ED^l(-Upj(_R%Mw^&6vcz)Sw)H60MNYBS_F+H7TK3qy=qv9`xq zR^l*n&>?7am^R}ahfO&zm@K;J5rid?+6gBa@P^ginnh&8)&vv5jzf~Cs!3_mUE(tHyx%2cRSuF48EYE>Ior(UBb4gTdQt{(Te&jWfrmNrj-vCFXC?n*~NkrI@sBqb|F zsY+vS43!bS$h`^wHuD)|+QhOiCx2?x|GyW!UY?(VN*>yyX5-67=cTpP&YD=5izuIv o{nh>H5_jx*?VsETV@ALi2tZ`;P(iCs$aih$xwEkRCdS$W0LJEZ?EnA( literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWoKC.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c8e6ed442f6ec162b17572024a2c87f64849fb2f GIT binary patch literal 14952 zcmV-uI+w+FPew8T0RR9106J&@5&!@I09mL206GBx0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWoKC.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1debc1b4b65ee902b30937a170cc5c960d93f5e4 GIT binary patch literal 38696 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 c1F$_IM;9 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�D|I?wbp&ZSuI(%^g0Ilg*pexLTYLGG1YI{^XF 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 literal 0 HcmV?d00001 diff --git a/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 b/0.48/assets/external/fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWoKC.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..10a65a78d1ea7c3c1eebfc15d52993f6c1bcaecf GIT binary patch literal 20504 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 iM_u_e&l~Z=aiZ{var BAe=Object.create;var u2=Object.defineProperty;var FAe=Object.getOwnPropertyDescriptor;var $Ae=Object.getOwnPropertyNames;var zAe=Object.getPrototypeOf,GAe=Object.prototype.hasOwnProperty;var o=(t,e)=>u2(t,"name",{value:e,configurable:!0});var O=(t,e)=>()=>(t&&(e=t(t=0)),e);var nr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),vr=(t,e)=>{for(var r in e)u2(t,r,{get:e[r],enumerable:!0})},z3=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $Ae(e))!GAe.call(t,i)&&i!==r&&u2(t,i,{get:()=>e[i],enumerable:!(n=FAe(e,i))||n.enumerable});return t},jr=(t,e,r)=>(z3(t,e,"default"),r&&z3(r,e,"default")),Ra=(t,e,r)=>(r=t!=null?BAe(zAe(t)):{},z3(e||!t||!t.__esModule?u2(r,"default",{value:t,enumerable:!0}):r,t)),G3=t=>z3(u2({},"__esModule",{value:!0}),t);var VAe,ag,W_,uH,V3=O(()=>{"use strict";VAe=Object.freeze({left:0,top:0,width:16,height:16}),ag=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),W_=Object.freeze({...VAe,...ag}),uH=Object.freeze({...W_,body:"",hidden:!1})});var qAe,hH,fH=O(()=>{"use strict";V3();qAe=Object.freeze({width:null,height:null}),hH=Object.freeze({...qAe,...ag})});var H_,q3,dH=O(()=>{"use strict";H_=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!q3(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!q3(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!q3(l,r)?null:l}return null},"stringToIcon"),q3=o((t,e)=>t?!!((e&&t.prefix===""||t.prefix)&&t.name):!1,"validateIconName")});function pH(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var mH=O(()=>{"use strict";o(pH,"mergeIconTransformations")});function Y_(t,e){let r=pH(t,e);for(let n in uH)n in ag?n in t&&!(n in r)&&(r[n]=ag[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var gH=O(()=>{"use strict";V3();mH();o(Y_,"mergeIconData")});function yH(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var vH=O(()=>{"use strict";o(yH,"getIconsTree")});function xH(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=Y_(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),Y_(t,a)}function j_(t,e){if(t.icons[e])return xH(t,e,[]);let r=yH(t,[e])[e];return r?xH(t,e,r):null}var bH=O(()=>{"use strict";gH();vH();o(xH,"internalGetIconData");o(j_,"getIconData")});function X_(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(UAe);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=WAe.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var UAe,WAe,TH=O(()=>{"use strict";UAe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,WAe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(X_,"calculateSize")});function HAe(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function YAe(t,e){return t?""+t+""+e:e}function wH(t,e,r){let n=HAe(t);return YAe(n.defs,e+n.content+r)}var kH=O(()=>{"use strict";o(HAe,"splitSVGDefs");o(YAe,"mergeDefsAndContent");o(wH,"wrapSVGContent")});function K_(t,e){let r={...W_,...t},n={...hH,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,T=y.rotate;x?b?T+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let E;switch(T<0&&(T-=Math.floor(T/4)*4),T=T%4,T){case 1:E=i.height/2+i.top,v.unshift("rotate(90 "+E.toString()+" "+E.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:E=i.width/2+i.left,v.unshift("rotate(-90 "+E.toString()+" "+E.toString()+")");break}T%2===1&&(i.left!==i.top&&(E=i.left,i.left=i.top,i.top=E),i.width!==i.height&&(E=i.width,i.width=i.height,i.height=E)),v.length&&(a=wH(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=X_(d,u/h)):(f=s==="auto"?u:s,d=l===null?X_(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{jAe(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var jAe,EH=O(()=>{"use strict";V3();fH();TH();kH();jAe=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(K_,"iconToSVG")});function Q_(t,e=KAe){let r=[],n;for(;n=XAe.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(QAe++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var XAe,KAe,QAe,SH=O(()=>{"use strict";XAe=/\sid="(\S+)"/g,KAe="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),QAe=0;o(Q_,"replaceIDs")});function Z_(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var CH=O(()=>{"use strict";o(Z_,"iconToHTML")});var AH=O(()=>{"use strict";dH();bH();EH();SH();CH()});var J_,Vn,sg=O(()=>{"use strict";J_=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>J_(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(a=>{typeof e[a]=="object"&&e[a]!==null&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=J_(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),Vn=J_});var U3=nr((e8,t8)=>{"use strict";(function(t,e){typeof e8=="object"&&typeof t8<"u"?t8.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(e8,(function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(C){var _=["th","st","nd","rd"],D=C%100;return"["+C+(_[(D-20)%10]||_[D]||_[0])+"]"},"ordinal")},x=o(function(C,_,D){var M=String(C);return!M||M.length>=_?C:""+Array(_+1-M.length).join(D)+C},"m"),b={s:x,z:o(function(C){var _=-C.utcOffset(),D=Math.abs(_),M=Math.floor(D/60),R=D%60;return(_<=0?"+":"-")+x(M,2,"0")+":"+x(R,2,"0")},"z"),m:o(function C(_,D){if(_.date()1)return C(B[0])}else{var F=_.name;E[F]=_,R=F}return!M&&R&&(T=R),R||!M&&T},"t"),A=o(function(C,_){if(k(C))return C.clone();var D=typeof _=="object"?_:{};return D.date=C,D.args=arguments,new I(D)},"O"),L=b;L.l=S,L.i=k,L.w=function(C,_){return A(C,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var I=(function(){function C(D){this.$L=S(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[w]=!0}o(C,"M");var _=C.prototype;return _.parse=function(D){this.$d=(function(M){var R=M.date,P=M.utc;if(R===null)return new Date(NaN);if(L.u(R))return new Date;if(R instanceof Date)return new Date(R);if(typeof R=="string"&&!/Z$/i.test(R)){var B=R.match(g);if(B){var F=B[2]-1||0,G=(B[7]||"0").substring(0,3);return P?new Date(Date.UTC(B[1],F,B[3]||1,B[4]||0,B[5]||0,B[6]||0,G)):new Date(B[1],F,B[3]||1,B[4]||0,B[5]||0,B[6]||0,G)}}return new Date(R)})(D),this.init()},_.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},_.$utils=function(){return L},_.isValid=function(){return this.$d.toString()!==m},_.isSame=function(D,M){var R=A(D);return this.startOf(M)<=R&&R<=this.endOf(M)},_.isAfter=function(D,M){return A(D){"use strict";_H=Ra(U3(),1),eh={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},K={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},h2=o(function(t="fatal"){let e=eh.fatal;typeof t=="string"?t.toLowerCase()in eh&&(e=eh[t]):typeof t=="number"&&(e=t),K.trace=()=>{},K.debug=()=>{},K.info=()=>{},K.warn=()=>{},K.error=()=>{},K.fatal=()=>{},e<=eh.fatal&&(K.fatal=console.error?console.error.bind(console,cl("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",cl("FATAL"))),e<=eh.error&&(K.error=console.error?console.error.bind(console,cl("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",cl("ERROR"))),e<=eh.warn&&(K.warn=console.warn?console.warn.bind(console,cl("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",cl("WARN"))),e<=eh.info&&(K.info=console.info?console.info.bind(console,cl("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",cl("INFO"))),e<=eh.debug&&(K.debug=console.debug?console.debug.bind(console,cl("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",cl("DEBUG"))),e<=eh.trace&&(K.trace=console.debug?console.debug.bind(console,cl("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",cl("TRACE")))},"setLogLevel"),cl=o(t=>`%c${(0,_H.default)().format("ss.SSS")} : ${t} : `,"format")});var W3,DH,RH=O(()=>{"use strict";W3={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return W3.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return W3.hue2rgb(a,i,t)*255;case"b":return W3.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e{"use strict";ZAe={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},LH=ZAe});var JAe,MH,IH=O(()=>{"use strict";JAe={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},MH=JAe});var e7e,ir,$c=O(()=>{"use strict";RH();NH();IH();e7e={channel:DH,lang:LH,unit:MH},ir=e7e});var th,Qi,f2=O(()=>{"use strict";$c();th={};for(let t=0;t<=255;t++)th[t]=ir.unit.dec2hex(t);Qi={ALL:0,RGB:1,HSL:2}});var r8,OH,PH=O(()=>{"use strict";f2();r8=class{static{o(this,"Type")}constructor(){this.type=Qi.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Qi.ALL}is(e){return this.type===e}},OH=r8});var n8,BH,FH=O(()=>{"use strict";$c();PH();f2();n8=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new OH}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Qi.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=ir.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=ir.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=ir.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=ir.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=ir.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=ir.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Qi.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Qi.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Qi.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Qi.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Qi.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Qi.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Qi.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Qi.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Qi.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Qi.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Qi.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Qi.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},BH=n8});var t7e,pf,d2=O(()=>{"use strict";FH();t7e=new BH({r:0,g:0,b:0,a:0},"transparent"),pf=t7e});var $H,Ap,i8=O(()=>{"use strict";d2();f2();$H={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match($H.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return pf.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${th[Math.round(e)]}${th[Math.round(r)]}${th[Math.round(n)]}${th[Math.round(i*255)]}`:`#${th[Math.round(e)]}${th[Math.round(r)]}${th[Math.round(n)]}`},"stringify")},Ap=$H});var H3,p2,zH=O(()=>{"use strict";$c();d2();H3={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(t=>{let e=t.match(H3.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return ir.channel.clamp.h(parseFloat(r)*.9);case"rad":return ir.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return ir.channel.clamp.h(parseFloat(r)*360)}}return ir.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(H3.re);if(!r)return;let[,n,i,a,s,l]=r;return pf.set({h:H3._hue2deg(n),s:ir.channel.clamp.s(parseFloat(i)),l:ir.channel.clamp.l(parseFloat(a)),a:s?ir.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${ir.lang.round(e)}, ${ir.lang.round(r)}%, ${ir.lang.round(n)}%, ${i})`:`hsl(${ir.lang.round(e)}, ${ir.lang.round(r)}%, ${ir.lang.round(n)}%)`},"stringify")},p2=H3});var Y3,a8,GH=O(()=>{"use strict";i8();Y3={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(t=>{t=t.toLowerCase();let e=Y3.colors[t];if(e)return Ap.parse(e)},"parse"),stringify:o(t=>{let e=Ap.stringify(t);for(let r in Y3.colors)if(Y3.colors[r]===e)return r},"stringify")},a8=Y3});var VH,m2,qH=O(()=>{"use strict";$c();d2();VH={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(VH.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return pf.set({r:ir.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:ir.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:ir.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?ir.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${ir.lang.round(e)}, ${ir.lang.round(r)}, ${ir.lang.round(n)}, ${ir.lang.round(i)})`:`rgb(${ir.lang.round(e)}, ${ir.lang.round(r)}, ${ir.lang.round(n)})`},"stringify")},m2=VH});var r7e,Zi,rh=O(()=>{"use strict";i8();zH();GH();qH();f2();r7e={format:{keyword:a8,hex:Ap,rgb:m2,rgba:m2,hsl:p2,hsla:p2},parse:o(t=>{if(typeof t!="string")return t;let e=Ap.parse(t)||m2.parse(t)||p2.parse(t)||a8.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Qi.HSL)||t.data.r===void 0?p2.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?m2.stringify(t):Ap.stringify(t),"stringify")},Zi=r7e});var n7e,j3,s8=O(()=>{"use strict";$c();rh();n7e=o((t,e)=>{let r=Zi.parse(t);for(let n in e)r[n]=ir.channel.clamp[n](e[n]);return Zi.stringify(r)},"change"),j3=n7e});var i7e,bs,o8=O(()=>{"use strict";$c();d2();rh();s8();i7e=o((t,e,r=0,n=1)=>{if(typeof t!="number")return j3(t,{a:e});let i=pf.set({r:ir.channel.clamp.r(t),g:ir.channel.clamp.g(e),b:ir.channel.clamp.b(r),a:ir.channel.clamp.a(n)});return Zi.stringify(i)},"rgba"),bs=i7e});var a7e,_p,UH=O(()=>{"use strict";$c();rh();a7e=o((t,e)=>ir.lang.round(Zi.parse(t)[e]),"channel"),_p=a7e});var s7e,WH,HH=O(()=>{"use strict";$c();rh();s7e=o(t=>{let{r:e,g:r,b:n}=Zi.parse(t),i=.2126*ir.channel.toLinear(e)+.7152*ir.channel.toLinear(r)+.0722*ir.channel.toLinear(n);return ir.lang.round(i)},"luminance"),WH=s7e});var o7e,YH,jH=O(()=>{"use strict";HH();o7e=o(t=>WH(t)>=.5,"isLight"),YH=o7e});var l7e,Ji,XH=O(()=>{"use strict";jH();l7e=o(t=>!YH(t),"isDark"),Ji=l7e});var c7e,og,X3=O(()=>{"use strict";$c();rh();c7e=o((t,e,r)=>{let n=Zi.parse(t),i=n[e],a=ir.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Zi.stringify(n)},"adjustChannel"),og=c7e});var u7e,Lt,KH=O(()=>{"use strict";X3();u7e=o((t,e)=>og(t,"l",e),"lighten"),Lt=u7e});var h7e,Bt,QH=O(()=>{"use strict";X3();h7e=o((t,e)=>og(t,"l",-e),"darken"),Bt=h7e});var f7e,K3,ZH=O(()=>{"use strict";X3();f7e=o((t,e)=>og(t,"a",-e),"transparentize"),K3=f7e});var d7e,Fe,JH=O(()=>{"use strict";rh();s8();d7e=o((t,e)=>{let r=Zi.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return j3(t,n)},"adjust"),Fe=d7e});var p7e,eY,tY=O(()=>{"use strict";rh();o8();p7e=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Zi.parse(t),{r:l,g:u,b:h,a:f}=Zi.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,T=a*y+h*v,E=s*d+f*(1-d);return bs(x,b,T,E)},"mix"),eY=p7e});var m7e,At,rY=O(()=>{"use strict";rh();tY();m7e=o((t,e=100)=>{let r=Zi.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,eY(r,t,e)},"invert"),At=m7e});var nY=O(()=>{"use strict";o8();UH();XH();KH();QH();ZH();JH();rY()});var Ys=O(()=>{"use strict";nY()});var mf,gf,g2=O(()=>{"use strict";mf="#ffffff",gf="#f2f2f2"});var zi,lg=O(()=>{"use strict";Ys();zi=o((t,e)=>e?Fe(t,{s:-40,l:10}):Fe(t,{s:-40,l:-10}),"mkBorder")});var c8,iY,aY=O(()=>{"use strict";Ys();g2();lg();c8=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Fe(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Fe(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||zi(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||zi(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||At(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||At(this.tertiaryColor),this.lineColor=this.lineColor||At(this.background),this.arrowheadColor=this.arrowheadColor||At(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Bt(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Bt(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||At(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Lt(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||"navy",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||Bt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Bt(this.mainBkg,10)):(this.rowOdd=this.rowOdd||Lt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||Lt(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},iY=o(t=>{let e=new c8;return e.calculate(t),e},"getThemeVariables")});var u8,sY,oY=O(()=>{"use strict";Ys();lg();u8=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Lt(this.primaryColor,16),this.tertiaryColor=Fe(this.primaryColor,{h:-160}),this.primaryBorderColor=At(this.background),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.tertiaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Lt(At("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=bs(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Bt("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Bt(this.sectionBkgColor,10),this.taskBorderColor=bs(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=bs(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Lt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Bt(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Lt(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Lt(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Lt(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=At(this.doneTaskBkgColor),this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Fe(this.primaryColor,{h:64}),this.fillType3=Fe(this.secondaryColor,{h:64}),this.fillType4=Fe(this.primaryColor,{h:-64}),this.fillType5=Fe(this.secondaryColor,{h:-64}),this.fillType6=Fe(this.primaryColor,{h:128}),this.fillType7=Fe(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330});for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},sY=o(t=>{let e=new u8;return e.calculate(t),e},"getThemeVariables")});var h8,yf,y2=O(()=>{"use strict";Ys();lg();g2();h8=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Fe(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Fe(this.primaryColor,{h:-160}),this.primaryBorderColor=zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.tertiaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.sectionBkgColor=bs(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="navy",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]==="calculated"&&(this[n]=void 0)}),typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},yf=o(t=>{let e=new h8;return e.calculate(t),e},"getThemeVariables")});var f8,lY,cY=O(()=>{"use strict";Ys();g2();lg();f8=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Lt("#cde498",10),this.primaryBorderColor=zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.primaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Bt(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},lY=o(t=>{let e=new f8;return e.calculate(t),e},"getThemeVariables")});var d8,uY,hY=O(()=>{"use strict";Ys();lg();g2();d8=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Lt(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Fe(this.primaryColor,{h:-160}),this.primaryBorderColor=zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.tertiaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Lt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Lt(this.contrast,55),this.border2=this.contrast,this.actorBorder=Lt(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},uY=o(t=>{let e=new d8;return e.calculate(t),e},"getThemeVariables")});var ul,Q3=O(()=>{"use strict";aY();oY();y2();cY();hY();ul={base:{getThemeVariables:iY},dark:{getThemeVariables:sY},default:{getThemeVariables:yf},forest:{getThemeVariables:lY},neutral:{getThemeVariables:uY}}});var Oo,fY=O(()=>{"use strict";Oo={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:null,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200,inheritDir:!1},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,maxLabelWidth:360,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],titleColor:"",titleFontFamily:'"trebuchet ms", verdana, arial, sans-serif',titleFontSize:"4ex"},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showDataLabel:!1,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200,layoutAlgorithm:"cose-bilkent"},ishikawa:{useMaxWidth:!0,diagramPadding:20},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},venn:{useMaxWidth:!0,width:800,height:450,padding:8,useDebugLayout:!1},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var dY,pY,mY,gr,La=O(()=>{"use strict";Q3();fY();dY={...Oo,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF",forceNodeModelOrder:!1,considerModelOrder:"NODES_AND_EDGES"},themeCSS:void 0,themeVariables:ul.default.getThemeVariables(),sequence:{...Oo.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...Oo.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Oo.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),flowchart:{...Oo.flowchart,inheritDir:!1},external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Oo.pie,useWidth:984},xyChart:{...Oo.xyChart,useWidth:void 0},requirement:{...Oo.requirement,useWidth:void 0},packet:{...Oo.packet},radar:{...Oo.radar},ishikawa:{...Oo.ishikawa},treemap:{useMaxWidth:!0,padding:10,diagramPadding:8,showValues:!0,nodeWidth:100,nodeHeight:40,borderWidth:1,valueFontSize:12,labelFontSize:14,valueFormat:","},venn:{...Oo.venn}},pY=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...pY(t[n],"")]:[...r,e+n],[]),"keyify"),mY=new Set(pY(dY,"")),gr=dY});var cg,g7e,p8=O(()=>{"use strict";La();xt();cg=o(t=>{if(K.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>cg(e));return}for(let e of Object.keys(t)){if(K.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!mY.has(e)||t[e]==null){K.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){K.debug("sanitizing object",e),cg(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(K.debug("sanitizing css option",e),t[e]=g7e(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}K.debug("After sanitization",t)}},"sanitizeDirective"),g7e=o(t=>{let e=0,r=0;for(let n of t){if(e{"use strict";sg();xt();Q3();La();p8();vf=Object.freeze(gr),Xs=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),js=Vn({},vf),Dp=[],v2=Vn({},vf),J3=o((t,e)=>{let r=Vn({},t),n={};for(let i of e)xY(i),n=Vn(n,i);if(r=Vn(r,n),n.theme&&n.theme in ul){let i=Vn({},Z3),a=Vn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in ul&&(r.themeVariables=ul[r.theme].getThemeVariables(a))}return v2=r,wY(v2),v2},"updateCurrentConfig"),m8=o(t=>(js=Vn({},vf),js=Vn(js,t),t.theme&&ul[t.theme]&&(js.themeVariables=ul[t.theme].getThemeVariables(t.themeVariables)),J3(js,Dp),js),"setSiteConfig"),yY=o(t=>{Z3=Vn({},t)},"saveConfigFromInitialize"),vY=o(t=>(js=Vn(js,t),J3(js,Dp),js),"updateSiteConfig"),g8=o(()=>Vn({},js),"getSiteConfig"),ew=o(t=>(wY(t),Vn(v2,t),Zt()),"setConfig"),Zt=o(()=>Vn({},v2),"getConfig"),xY=o(t=>{t&&(["secure",...js.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(K.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&xY(t[e])}))},"sanitize"),bY=o(t=>{cg(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),Dp.push(t),J3(js,Dp)},"addDirective"),x2=o((t=js)=>{Dp=[],J3(t,Dp)},"reset"),y7e={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",FLOWCHART_HTML_LABELS_DEPRECATED:"flowchart.htmlLabels is deprecated. Please use global htmlLabels instead."},gY={},TY=o(t=>{gY[t]||(K.warn(y7e[t]),gY[t]=!0)},"issueWarning"),wY=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&TY("LAZY_LOAD_DEPRECATED")},"checkConfig"),kY=o(()=>{let t={};Z3&&(t=Vn(t,Z3));for(let e of Dp)t=Vn(t,e);return t},"getUserDefinedConfig"),Sr=o(t=>(t.flowchart?.htmlLabels!=null&&TY("FLOWCHART_HTML_LABELS_DEPRECATED"),Xs(t.htmlLabels??t.flowchart?.htmlLabels??!0)),"getEffectiveHtmlLabels")});function ks(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:nw;EY&&EY(t,null);let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let a=r(i);a!==i&&(v7e(e)||(e[n]=a),i=a)}t[i]=!0}return t}function C7e(t){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:B7e(),e=o(mt=>OY(mt),"DOMPurify");if(e.version="3.3.1",e.removed=[],!t||!t.document||t.document.nodeType!==E2.document||!t.Element)return e.isSupported=!1,e;let{document:r}=t,n=r,i=n.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:m}=t,g=u.prototype,y=k2(g,"cloneNode"),v=k2(g,"remove"),x=k2(g,"nextSibling"),b=k2(g,"childNodes"),T=k2(g,"parentNode");if(typeof s=="function"){let mt=r.createElement("template");mt.content&&mt.content.ownerDocument&&(r=mt.content.ownerDocument)}let E,w="",{implementation:k,createNodeIterator:S,createDocumentFragment:A,getElementsByTagName:L}=r,{importNode:I}=n,N=LY();e.isSupported=typeof NY=="function"&&typeof T=="function"&&k&&k.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:C,ERB_EXPR:_,TMPLIT_EXPR:D,DATA_ATTR:M,ARIA_ATTR:R,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:B,CUSTOM_ELEMENT:F}=RY,{IS_ALLOWED_URI:G}=RY,$=null,V=Xr({},[...CY,...x8,...b8,...T8,...AY]),X=null,Q=Xr({},[..._Y,...w8,...DY,...rw]),H=Object.seal(k8(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ie=null,Y=null,le=Object.seal(k8(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ee=!0,J=!0,te=!1,Z=!0,xe=!1,de=!0,Se=!1,Me=!1,ke=!1,we=!1,_e=!1,$e=!1,fe=!0,Ke=!1,Te="user-content-",Be=!0,Ue=!1,Ge={},Ne=null,We=Xr({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),j=null,ae=Xr({},["audio","video","img","source","image","track"]),U=null,ce=Xr({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),z="http://www.w3.org/1998/Math/MathML",ne="http://www.w3.org/2000/svg",se="http://www.w3.org/1999/xhtml",be=se,pe=!1,me=null,Re=Xr({},[z,ne,se],y8),ge=Xr({},["mi","mo","mn","ms","mtext"]),Ie=Xr({},["annotation-xml"]),qe=Xr({},["title","style","font","a","script"]),Pe=null,Xe=["application/xhtml+xml","text/html"],oe="text/html",et=null,he=null,ot=r.createElement("form"),Dt=o(function(Le){return Le instanceof RegExp||Le instanceof Function},"isRegexOrFunction"),It=o(function(){let Le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(he&&he===Le)){if((!Le||typeof Le!="object")&&(Le={}),Le=zc(Le),Pe=Xe.indexOf(Le.PARSER_MEDIA_TYPE)===-1?oe:Le.PARSER_MEDIA_TYPE,et=Pe==="application/xhtml+xml"?y8:nw,$=Kl(Le,"ALLOWED_TAGS")?Xr({},Le.ALLOWED_TAGS,et):V,X=Kl(Le,"ALLOWED_ATTR")?Xr({},Le.ALLOWED_ATTR,et):Q,me=Kl(Le,"ALLOWED_NAMESPACES")?Xr({},Le.ALLOWED_NAMESPACES,y8):Re,U=Kl(Le,"ADD_URI_SAFE_ATTR")?Xr(zc(ce),Le.ADD_URI_SAFE_ATTR,et):ce,j=Kl(Le,"ADD_DATA_URI_TAGS")?Xr(zc(ae),Le.ADD_DATA_URI_TAGS,et):ae,Ne=Kl(Le,"FORBID_CONTENTS")?Xr({},Le.FORBID_CONTENTS,et):We,ie=Kl(Le,"FORBID_TAGS")?Xr({},Le.FORBID_TAGS,et):zc({}),Y=Kl(Le,"FORBID_ATTR")?Xr({},Le.FORBID_ATTR,et):zc({}),Ge=Kl(Le,"USE_PROFILES")?Le.USE_PROFILES:!1,ee=Le.ALLOW_ARIA_ATTR!==!1,J=Le.ALLOW_DATA_ATTR!==!1,te=Le.ALLOW_UNKNOWN_PROTOCOLS||!1,Z=Le.ALLOW_SELF_CLOSE_IN_ATTR!==!1,xe=Le.SAFE_FOR_TEMPLATES||!1,de=Le.SAFE_FOR_XML!==!1,Se=Le.WHOLE_DOCUMENT||!1,we=Le.RETURN_DOM||!1,_e=Le.RETURN_DOM_FRAGMENT||!1,$e=Le.RETURN_TRUSTED_TYPE||!1,ke=Le.FORCE_BODY||!1,fe=Le.SANITIZE_DOM!==!1,Ke=Le.SANITIZE_NAMED_PROPS||!1,Be=Le.KEEP_CONTENT!==!1,Ue=Le.IN_PLACE||!1,G=Le.ALLOWED_URI_REGEXP||MY,be=Le.NAMESPACE||se,ge=Le.MATHML_TEXT_INTEGRATION_POINTS||ge,Ie=Le.HTML_INTEGRATION_POINTS||Ie,H=Le.CUSTOM_ELEMENT_HANDLING||{},Le.CUSTOM_ELEMENT_HANDLING&&Dt(Le.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=Le.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Le.CUSTOM_ELEMENT_HANDLING&&Dt(Le.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=Le.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Le.CUSTOM_ELEMENT_HANDLING&&typeof Le.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(H.allowCustomizedBuiltInElements=Le.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),xe&&(J=!1),_e&&(we=!0),Ge&&($=Xr({},AY),X=[],Ge.html===!0&&(Xr($,CY),Xr(X,_Y)),Ge.svg===!0&&(Xr($,x8),Xr(X,w8),Xr(X,rw)),Ge.svgFilters===!0&&(Xr($,b8),Xr(X,w8),Xr(X,rw)),Ge.mathMl===!0&&(Xr($,T8),Xr(X,DY),Xr(X,rw))),Le.ADD_TAGS&&(typeof Le.ADD_TAGS=="function"?le.tagCheck=Le.ADD_TAGS:($===V&&($=zc($)),Xr($,Le.ADD_TAGS,et))),Le.ADD_ATTR&&(typeof Le.ADD_ATTR=="function"?le.attributeCheck=Le.ADD_ATTR:(X===Q&&(X=zc(X)),Xr(X,Le.ADD_ATTR,et))),Le.ADD_URI_SAFE_ATTR&&Xr(U,Le.ADD_URI_SAFE_ATTR,et),Le.FORBID_CONTENTS&&(Ne===We&&(Ne=zc(Ne)),Xr(Ne,Le.FORBID_CONTENTS,et)),Le.ADD_FORBID_CONTENTS&&(Ne===We&&(Ne=zc(Ne)),Xr(Ne,Le.ADD_FORBID_CONTENTS,et)),Be&&($["#text"]=!0),Se&&Xr($,["html","head","body"]),$.table&&(Xr($,["tbody"]),delete ie.tbody),Le.TRUSTED_TYPES_POLICY){if(typeof Le.TRUSTED_TYPES_POLICY.createHTML!="function")throw w2('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Le.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw w2('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=Le.TRUSTED_TYPES_POLICY,w=E.createHTML("")}else E===void 0&&(E=F7e(m,i)),E!==null&&typeof w=="string"&&(w=E.createHTML(""));ws&&ws(Le),he=Le}},"_parseConfig"),wt=Xr({},[...x8,...b8,...A7e]),Rt=Xr({},[...T8,..._7e]),it=o(function(Le){let ct=T(Le);(!ct||!ct.tagName)&&(ct={namespaceURI:be,tagName:"template"});let St=nw(Le.tagName),Mr=nw(ct.tagName);return me[Le.namespaceURI]?Le.namespaceURI===ne?ct.namespaceURI===se?St==="svg":ct.namespaceURI===z?St==="svg"&&(Mr==="annotation-xml"||ge[Mr]):!!wt[St]:Le.namespaceURI===z?ct.namespaceURI===se?St==="math":ct.namespaceURI===ne?St==="math"&&Ie[Mr]:!!Rt[St]:Le.namespaceURI===se?ct.namespaceURI===ne&&!Ie[Mr]||ct.namespaceURI===z&&!ge[Mr]?!1:!Rt[St]&&(qe[St]||!wt[St]):!!(Pe==="application/xhtml+xml"&&me[Le.namespaceURI]):!1},"_checkValidNamespace"),at=o(function(Le){b2(e.removed,{element:Le});try{T(Le).removeChild(Le)}catch{v(Le)}},"_forceRemove"),Ct=o(function(Le,ct){try{b2(e.removed,{attribute:ct.getAttributeNode(Le),from:ct})}catch{b2(e.removed,{attribute:null,from:ct})}if(ct.removeAttribute(Le),Le==="is")if(we||_e)try{at(ct)}catch{}else try{ct.setAttribute(Le,"")}catch{}},"_removeAttribute"),yt=o(function(Le){let ct=null,St=null;if(ke)Le=""+Le;else{let cn=v8(Le,/^[\r\n\t ]+/);St=cn&&cn[0]}Pe==="application/xhtml+xml"&&be===se&&(Le=''+Le+"");let Mr=E?E.createHTML(Le):Le;if(be===se)try{ct=new p().parseFromString(Mr,Pe)}catch{}if(!ct||!ct.documentElement){ct=k.createDocument(be,"template",null);try{ct.documentElement.innerHTML=pe?w:Mr}catch{}}let tn=ct.body||ct.documentElement;return Le&&St&&tn.insertBefore(r.createTextNode(St),tn.childNodes[0]||null),be===se?L.call(ct,Se?"html":"body")[0]:Se?ct.documentElement:tn},"_initDocument"),dt=o(function(Le){return S.call(Le.ownerDocument||Le,Le,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),Ht=o(function(Le){return Le instanceof d&&(typeof Le.nodeName!="string"||typeof Le.textContent!="string"||typeof Le.removeChild!="function"||!(Le.attributes instanceof f)||typeof Le.removeAttribute!="function"||typeof Le.setAttribute!="function"||typeof Le.namespaceURI!="string"||typeof Le.insertBefore!="function"||typeof Le.hasChildNodes!="function")},"_isClobbered"),cr=o(function(Le){return typeof l=="function"&&Le instanceof l},"_isNode");function Kt(mt,Le,ct){tw(mt,St=>{St.call(e,Le,ct,he)})}o(Kt,"_executeHooks");let kr=o(function(Le){let ct=null;if(Kt(N.beforeSanitizeElements,Le,null),Ht(Le))return at(Le),!0;let St=et(Le.nodeName);if(Kt(N.uponSanitizeElement,Le,{tagName:St,allowedTags:$}),de&&Le.hasChildNodes()&&!cr(Le.firstElementChild)&&Ts(/<[/\w!]/g,Le.innerHTML)&&Ts(/<[/\w!]/g,Le.textContent)||Le.nodeType===E2.progressingInstruction||de&&Le.nodeType===E2.comment&&Ts(/<[/\w]/g,Le.data))return at(Le),!0;if(!(le.tagCheck instanceof Function&&le.tagCheck(St))&&(!$[St]||ie[St])){if(!ie[St]&&tr(St)&&(H.tagNameCheck instanceof RegExp&&Ts(H.tagNameCheck,St)||H.tagNameCheck instanceof Function&&H.tagNameCheck(St)))return!1;if(Be&&!Ne[St]){let Mr=T(Le)||Le.parentNode,tn=b(Le)||Le.childNodes;if(tn&&Mr){let cn=tn.length;for(let Cr=cn-1;Cr>=0;--Cr){let Ki=y(tn[Cr],!0);Ki.__removalCount=(Le.__removalCount||0)+1,Mr.insertBefore(Ki,x(Le))}}}return at(Le),!0}return Le instanceof u&&!it(Le)||(St==="noscript"||St==="noembed"||St==="noframes")&&Ts(/<\/no(script|embed|frames)/i,Le.innerHTML)?(at(Le),!0):(xe&&Le.nodeType===E2.text&&(ct=Le.textContent,tw([C,_,D],Mr=>{ct=T2(ct,Mr," ")}),Le.textContent!==ct&&(b2(e.removed,{element:Le.cloneNode()}),Le.textContent=ct)),Kt(N.afterSanitizeElements,Le,null),!1)},"_sanitizeElements"),ur=o(function(Le,ct,St){if(fe&&(ct==="id"||ct==="name")&&(St in r||St in ot))return!1;if(!(J&&!Y[ct]&&Ts(M,ct))){if(!(ee&&Ts(R,ct))){if(!(le.attributeCheck instanceof Function&&le.attributeCheck(ct,Le))){if(!X[ct]||Y[ct]){if(!(tr(Le)&&(H.tagNameCheck instanceof RegExp&&Ts(H.tagNameCheck,Le)||H.tagNameCheck instanceof Function&&H.tagNameCheck(Le))&&(H.attributeNameCheck instanceof RegExp&&Ts(H.attributeNameCheck,ct)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(ct,Le))||ct==="is"&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&Ts(H.tagNameCheck,St)||H.tagNameCheck instanceof Function&&H.tagNameCheck(St))))return!1}else if(!U[ct]){if(!Ts(G,T2(St,B,""))){if(!((ct==="src"||ct==="xlink:href"||ct==="href")&&Le!=="script"&&k7e(St,"data:")===0&&j[Le])){if(!(te&&!Ts(P,T2(St,B,"")))){if(St)return!1}}}}}}}return!0},"_isValidAttribute"),tr=o(function(Le){return Le!=="annotation-xml"&&v8(Le,F)},"_isBasicCustomElement"),hr=o(function(Le){Kt(N.beforeSanitizeAttributes,Le,null);let{attributes:ct}=Le;if(!ct||Ht(Le))return;let St={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:X,forceKeepAttr:void 0},Mr=ct.length;for(;Mr--;){let tn=ct[Mr],{name:cn,namespaceURI:Cr,value:Ki}=tn,Da=et(cn),Dn=Ki,Pt=cn==="value"?Dn:E7e(Dn);if(St.attrName=Da,St.attrValue=Pt,St.keepAttr=!0,St.forceKeepAttr=void 0,Kt(N.uponSanitizeAttribute,Le,St),Pt=St.attrValue,Ke&&(Da==="id"||Da==="name")&&(Ct(cn,Le),Pt=Te+Pt),de&&Ts(/((--!?|])>)|<\/(style|title|textarea)/i,Pt)){Ct(cn,Le);continue}if(Da==="attributename"&&v8(Pt,"href")){Ct(cn,Le);continue}if(St.forceKeepAttr)continue;if(!St.keepAttr){Ct(cn,Le);continue}if(!Z&&Ts(/\/>/i,Pt)){Ct(cn,Le);continue}xe&&tw([C,_,D],Vt=>{Pt=T2(Pt,Vt," ")});let Tt=et(Le.nodeName);if(!ur(Tt,Da,Pt)){Ct(cn,Le);continue}if(E&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!Cr)switch(m.getAttributeType(Tt,Da)){case"TrustedHTML":{Pt=E.createHTML(Pt);break}case"TrustedScriptURL":{Pt=E.createScriptURL(Pt);break}}if(Pt!==Dn)try{Cr?Le.setAttributeNS(Cr,cn,Pt):Le.setAttribute(cn,Pt),Ht(Le)?at(Le):SY(e.removed)}catch{Ct(cn,Le)}}Kt(N.afterSanitizeAttributes,Le,null)},"_sanitizeAttributes"),_n=o(function mt(Le){let ct=null,St=dt(Le);for(Kt(N.beforeSanitizeShadowDOM,Le,null);ct=St.nextNode();)Kt(N.uponSanitizeShadowNode,ct,null),kr(ct),hr(ct),ct.content instanceof a&&mt(ct.content);Kt(N.afterSanitizeShadowDOM,Le,null)},"_sanitizeShadowDOM");return e.sanitize=function(mt){let Le=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ct=null,St=null,Mr=null,tn=null;if(pe=!mt,pe&&(mt=""),typeof mt!="string"&&!cr(mt))if(typeof mt.toString=="function"){if(mt=mt.toString(),typeof mt!="string")throw w2("dirty is not a string, aborting")}else throw w2("toString is not a function");if(!e.isSupported)return mt;if(Me||It(Le),e.removed=[],typeof mt=="string"&&(Ue=!1),Ue){if(mt.nodeName){let Ki=et(mt.nodeName);if(!$[Ki]||ie[Ki])throw w2("root node is forbidden and cannot be sanitized in-place")}}else if(mt instanceof l)ct=yt(""),St=ct.ownerDocument.importNode(mt,!0),St.nodeType===E2.element&&St.nodeName==="BODY"||St.nodeName==="HTML"?ct=St:ct.appendChild(St);else{if(!we&&!xe&&!Se&&mt.indexOf("<")===-1)return E&&$e?E.createHTML(mt):mt;if(ct=yt(mt),!ct)return we?null:$e?w:""}ct&&ke&&at(ct.firstChild);let cn=dt(Ue?mt:ct);for(;Mr=cn.nextNode();)kr(Mr),hr(Mr),Mr.content instanceof a&&_n(Mr.content);if(Ue)return mt;if(we){if(_e)for(tn=A.call(ct.ownerDocument);ct.firstChild;)tn.appendChild(ct.firstChild);else tn=ct;return(X.shadowroot||X.shadowrootmode)&&(tn=I.call(n,tn,!0)),tn}let Cr=Se?ct.outerHTML:ct.innerHTML;return Se&&$["!doctype"]&&ct.ownerDocument&&ct.ownerDocument.doctype&&ct.ownerDocument.doctype.name&&Ts(IY,ct.ownerDocument.doctype.name)&&(Cr=" +`+Cr),xe&&tw([C,_,D],Ki=>{Cr=T2(Cr,Ki," ")}),E&&$e?E.createHTML(Cr):Cr},e.setConfig=function(){let mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};It(mt),Me=!0},e.clearConfig=function(){he=null,Me=!1},e.isValidAttribute=function(mt,Le,ct){he||It({});let St=et(mt),Mr=et(Le);return ur(St,Mr,ct)},e.addHook=function(mt,Le){typeof Le=="function"&&b2(N[mt],Le)},e.removeHook=function(mt,Le){if(Le!==void 0){let ct=T7e(N[mt],Le);return ct===-1?void 0:w7e(N[mt],ct,1)[0]}return SY(N[mt])},e.removeHooks=function(mt){N[mt]=[]},e.removeAllHooks=function(){N=LY()},e}var NY,EY,v7e,x7e,b7e,ws,hl,k8,E8,S8,tw,T7e,SY,b2,w7e,nw,y8,v8,T2,k7e,E7e,Kl,Ts,w2,CY,x8,b8,A7e,T8,_7e,AY,_Y,w8,DY,rw,D7e,R7e,L7e,N7e,M7e,MY,I7e,O7e,IY,P7e,RY,E2,B7e,F7e,LY,fl,S2=O(()=>{"use strict";({entries:NY,setPrototypeOf:EY,isFrozen:v7e,getPrototypeOf:x7e,getOwnPropertyDescriptor:b7e}=Object),{freeze:ws,seal:hl,create:k8}=Object,{apply:E8,construct:S8}=typeof Reflect<"u"&&Reflect;ws||(ws=o(function(e){return e},"freeze"));hl||(hl=o(function(e){return e},"seal"));E8||(E8=o(function(e,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;a1?r-1:0),i=1;i/gm),L7e=hl(/\$\{[\w\W]*/gm),N7e=hl(/^data-[\-\w.\u00B7-\uFFFF]+$/),M7e=hl(/^aria-[\-\w]+$/),MY=hl(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),I7e=hl(/^(?:\w+script|data):/i),O7e=hl(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),IY=hl(/^html$/i),P7e=hl(/^[a-z][.\w]*(-[.\w]+)+$/i),RY=Object.freeze({__proto__:null,ARIA_ATTR:M7e,ATTR_WHITESPACE:O7e,CUSTOM_ELEMENT:P7e,DATA_ATTR:N7e,DOCTYPE_NAME:IY,ERB_EXPR:R7e,IS_ALLOWED_URI:MY,IS_SCRIPT_OR_DATA:I7e,MUSTACHE_EXPR:D7e,TMPLIT_EXPR:L7e}),E2={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},B7e=o(function(){return typeof window>"u"?null:window},"getGlobal"),F7e=o(function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null,i="data-tt-policy-suffix";r&&r.hasAttribute(i)&&(n=r.getAttribute(i));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy"),LY=o(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");o(OY,"createDOMPurify");fl=OY()});var dX={};vr(dX,{ParseError:()=>bt,SETTINGS_SCHEMA:()=>D2,__defineFunction:()=>Ot,__defineMacro:()=>ue,__defineSymbol:()=>q,__domTree:()=>fX,__parse:()=>lX,__renderToDomTree:()=>Rw,__renderToHTMLTree:()=>uX,__setFontMetrics:()=>mj,default:()=>_8e,render:()=>pD,renderToString:()=>oX,version:()=>hX});function U7e(t){return String(t).replace(q7e,e=>V7e[e])}function j7e(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function t_e(t){for(var e=0;e<$8.length;e++)for(var r=$8[e],n=0;n=i[0]&&t<=i[1])return r.name}return null}function pj(t){for(var e=0;e=mw[e]&&t<=mw[e+1])return!0;return!1}function mj(t,e){qc[t]=e}function Z8(t,e,r){if(!qc[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=qc[e][n];if(!i&&t[0]in BY&&(n=BY[t[0]].charCodeAt(0),i=qc[e][n]),!i&&r==="text"&&pj(n)&&(i=qc[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function f_e(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!C8[e]){var r=C8[e]={cssEmPerMu:iw.quad[e]/18};for(var n in iw)iw.hasOwnProperty(n)&&(r[n]=iw[n][e])}return C8[e]}function zY(t){if(t instanceof Zs)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function y_e(t){if(t instanceof Np)return t;throw new Error("Expected span but got "+String(t)+".")}function q(t,e,r,n,i,a){qn[t][i]={font:e,group:r,replace:n},a&&n&&(qn[t][n]=qn[t][i])}function Ot(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(hw(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(hw(s,e));var h;r?(h=hw(ea(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=oh(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=_t(f.height+f.depth),f.depth&&(d.style.verticalAlign=_t(-f.depth))}return f}function Aj(t){return new Lp(t)}function D8(t){if(!t)return!1;if(t.type==="mi"&&t.children.length===1){var e=t.children[0];return e instanceof pl&&e.text==="."}else if(t.type==="mo"&&t.children.length===1&&t.getAttribute("separator")==="true"&&t.getAttribute("lspace")==="0em"&&t.getAttribute("rspace")==="0em"){var r=t.children[0];return r instanceof pl&&r.text===","}else return!1}function WY(t,e,r,n,i){var a=Js(t,r),s;a.length===1&&a[0]instanceof Es&&["mrow","mtable"].includes(a[0].type)?s=a[0]:s=new vt.MathNode("mrow",a);var l=new vt.MathNode("annotation",[new vt.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new vt.MathNode("semantics",[s,l]),h=new vt.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return He.makeSpan([f],[h])}function Ir(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function rD(t){var e=Cw(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function Cw(t){return t&&(t.type==="atom"||x_e.hasOwnProperty(t.type))?t:null}function Lj(t,e){var r=ea(t.body,e,!0);return X_e([t.mclass],r,e)}function Nj(t,e){var r,n=Js(t.body,e);return t.mclass==="minner"?r=new vt.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new vt.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new vt.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function Z_e(t,e,r){var n=K_e[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function J_e(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new bt("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=Z_e(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=HY()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function _w(t,e){var r=Cw(t);if(r&&f8e.includes(r.text))return r;throw r?new bt("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new bt("Invalid delimiter type '"+t.type+"'",t)}function XY(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function Wc(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";Qs=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},Po=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,Qs.range(this,e))}},bt=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},q7e=/[&><"']/g;o(U7e,"escape");dj=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),W7e=o(function(e){var r=dj(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),H7e=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),Y7e=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),un={deflt:$7e,escape:U7e,hyphenate:G7e,getBaseElem:dj,isCharacterBox:W7e,protocolFromUrl:Y7e},D2={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(t=>Math.max(0,t),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(j7e,"getDefaultValue");L2=class{static{o(this,"Settings")}constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in D2)if(D2.hasOwnProperty(r)){var n=D2[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:j7e(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new bt("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=un.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},Gc=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Vc[X7e[this.id]]}sub(){return Vc[K7e[this.id]]}fracNum(){return Vc[Q7e[this.id]]}fracDen(){return Vc[Z7e[this.id]]}cramp(){return Vc[J7e[this.id]]}text(){return Vc[e_e[this.id]]}isTight(){return this.size>=2}},Q8=0,gw=1,fg=2,ah=3,N2=4,dl=5,dg=6,Ss=7,Vc=[new Gc(Q8,0,!1),new Gc(gw,0,!0),new Gc(fg,1,!1),new Gc(ah,1,!0),new Gc(N2,2,!1),new Gc(dl,2,!0),new Gc(dg,3,!1),new Gc(Ss,3,!0)],X7e=[N2,dl,N2,dl,dg,Ss,dg,Ss],K7e=[dl,dl,dl,dl,Ss,Ss,Ss,Ss],Q7e=[fg,ah,N2,dl,dg,Ss,dg,Ss],Z7e=[ah,ah,dl,dl,Ss,Ss,Ss,Ss],J7e=[gw,gw,ah,ah,dl,dl,Ss,Ss],e_e=[Q8,gw,fg,ah,fg,ah,fg,ah],dr={DISPLAY:Vc[Q8],TEXT:Vc[fg],SCRIPT:Vc[N2],SCRIPTSCRIPT:Vc[dg]},$8=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(t_e,"scriptFromCodepoint");mw=[];$8.forEach(t=>t.blocks.forEach(e=>mw.push(...e)));o(pj,"supportedCodepoint");hg=80,r_e=o(function(e,r){return"M95,"+(622+e+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),n_e=o(function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),i_e=o(function(e,r){return"M983 "+(10+e+r)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),a_e=o(function(e,r){return"M424,"+(2398+e+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` +h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),s_e=o(function(e,r){return"M473,"+(2713+e+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),o_e=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),l_e=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),c_e=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=r_e(r,hg);break;case"sqrtSize1":i=n_e(r,hg);break;case"sqrtSize2":i=i_e(r,hg);break;case"sqrtSize3":i=a_e(r,hg);break;case"sqrtSize4":i=s_e(r,hg);break;case"sqrtTall":i=l_e(r,hg,n)}return i},"sqrtPath"),u_e=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),PY={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},h_e=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Lp=class{static{o(this,"DocumentFragment")}constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return this.classes.includes(e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(e).join("")}},qc={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},iw={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},BY={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(mj,"setFontMetrics");o(Z8,"getCharacterMetrics");C8={};o(f_e,"getGlobalMetrics");d_e=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],FY=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],$Y=o(function(e,r){return r.size<2?e:d_e[e-1][r.size-1]},"sizeAtStyle"),yw=class t{static{o(this,"Options")}constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=FY[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:$Y(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:FY[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=$Y(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=f_e(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};yw.BASESIZE=6;z8={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},p_e={ex:!0,em:!0,mu:!0},gj=o(function(e){return typeof e!="string"&&(e=e.unit),e in z8||e in p_e||e==="ex"},"validUnit"),bi=o(function(e,r){var n;if(e.unit in z8)n=z8[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new bt("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),_t=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),Tf=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),yj=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),vj=o(function(e){var r=document.createElement(e);r.className=Tf(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a/=\x00-\x1f]/,xj=o(function(e){var r="<"+e;this.classes.length&&(r+=' class="'+un.escape(Tf(this.classes))+'"');var n="";for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=un.hyphenate(i)+":"+this.style[i]+";");n&&(r+=' style="'+un.escape(n)+'"');for(var a in this.attributes)if(this.attributes.hasOwnProperty(a)){if(m_e.test(a))throw new bt("Invalid attribute name '"+a+"'");r+=" "+a+'="'+un.escape(this.attributes[a])+'"'}r+=">";for(var s=0;s",r},"toMarkup"),Np=class{static{o(this,"Span")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,yj.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return this.classes.includes(e)}toNode(){return vj.call(this,"span")}toMarkup(){return xj.call(this,"span")}},M2=class{static{o(this,"Anchor")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,yj.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return this.classes.includes(e)}toNode(){return vj.call(this,"a")}toMarkup(){return xj.call(this,"a")}},G8=class{static{o(this,"Img")}constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+un.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=_t(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=Tf(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=un.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+un.escape(n)+'"');var a=un.escape(this.text);return e?(r+=">",r+=a,r+="",r):a}},Zl=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},I2=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="","\\gt",!0);q(W,re,De,"\u2208","\\in",!0);q(W,re,De,"\uE020","\\@not");q(W,re,De,"\u2282","\\subset",!0);q(W,re,De,"\u2283","\\supset",!0);q(W,re,De,"\u2286","\\subseteq",!0);q(W,re,De,"\u2287","\\supseteq",!0);q(W,Ae,De,"\u2288","\\nsubseteq",!0);q(W,Ae,De,"\u2289","\\nsupseteq",!0);q(W,re,De,"\u22A8","\\models");q(W,re,De,"\u2190","\\leftarrow",!0);q(W,re,De,"\u2264","\\le");q(W,re,De,"\u2264","\\leq",!0);q(W,re,De,"<","\\lt",!0);q(W,re,De,"\u2192","\\rightarrow",!0);q(W,re,De,"\u2192","\\to");q(W,Ae,De,"\u2271","\\ngeq",!0);q(W,Ae,De,"\u2270","\\nleq",!0);q(W,re,ch,"\xA0","\\ ");q(W,re,ch,"\xA0","\\space");q(W,re,ch,"\xA0","\\nobreakspace");q(ft,re,ch,"\xA0","\\ ");q(ft,re,ch,"\xA0"," ");q(ft,re,ch,"\xA0","\\space");q(ft,re,ch,"\xA0","\\nobreakspace");q(W,re,ch,null,"\\nobreak");q(W,re,ch,null,"\\allowbreak");q(W,re,Ew,",",",");q(W,re,Ew,";",";");q(W,Ae,Ft,"\u22BC","\\barwedge",!0);q(W,Ae,Ft,"\u22BB","\\veebar",!0);q(W,re,Ft,"\u2299","\\odot",!0);q(W,re,Ft,"\u2295","\\oplus",!0);q(W,re,Ft,"\u2297","\\otimes",!0);q(W,re,ze,"\u2202","\\partial",!0);q(W,re,Ft,"\u2298","\\oslash",!0);q(W,Ae,Ft,"\u229A","\\circledcirc",!0);q(W,Ae,Ft,"\u22A1","\\boxdot",!0);q(W,re,Ft,"\u25B3","\\bigtriangleup");q(W,re,Ft,"\u25BD","\\bigtriangledown");q(W,re,Ft,"\u2020","\\dagger");q(W,re,Ft,"\u22C4","\\diamond");q(W,re,Ft,"\u22C6","\\star");q(W,re,Ft,"\u25C3","\\triangleleft");q(W,re,Ft,"\u25B9","\\triangleright");q(W,re,Bo,"{","\\{");q(ft,re,ze,"{","\\{");q(ft,re,ze,"{","\\textbraceleft");q(W,re,Cs,"}","\\}");q(ft,re,ze,"}","\\}");q(ft,re,ze,"}","\\textbraceright");q(W,re,Bo,"{","\\lbrace");q(W,re,Cs,"}","\\rbrace");q(W,re,Bo,"[","\\lbrack",!0);q(ft,re,ze,"[","\\lbrack",!0);q(W,re,Cs,"]","\\rbrack",!0);q(ft,re,ze,"]","\\rbrack",!0);q(W,re,Bo,"(","\\lparen",!0);q(W,re,Cs,")","\\rparen",!0);q(ft,re,ze,"<","\\textless",!0);q(ft,re,ze,">","\\textgreater",!0);q(W,re,Bo,"\u230A","\\lfloor",!0);q(W,re,Cs,"\u230B","\\rfloor",!0);q(W,re,Bo,"\u2308","\\lceil",!0);q(W,re,Cs,"\u2309","\\rceil",!0);q(W,re,ze,"\\","\\backslash");q(W,re,ze,"\u2223","|");q(W,re,ze,"\u2223","\\vert");q(ft,re,ze,"|","\\textbar",!0);q(W,re,ze,"\u2225","\\|");q(W,re,ze,"\u2225","\\Vert");q(ft,re,ze,"\u2225","\\textbardbl");q(ft,re,ze,"~","\\textasciitilde");q(ft,re,ze,"\\","\\textbackslash");q(ft,re,ze,"^","\\textasciicircum");q(W,re,De,"\u2191","\\uparrow",!0);q(W,re,De,"\u21D1","\\Uparrow",!0);q(W,re,De,"\u2193","\\downarrow",!0);q(W,re,De,"\u21D3","\\Downarrow",!0);q(W,re,De,"\u2195","\\updownarrow",!0);q(W,re,De,"\u21D5","\\Updownarrow",!0);q(W,re,Gi,"\u2210","\\coprod");q(W,re,Gi,"\u22C1","\\bigvee");q(W,re,Gi,"\u22C0","\\bigwedge");q(W,re,Gi,"\u2A04","\\biguplus");q(W,re,Gi,"\u22C2","\\bigcap");q(W,re,Gi,"\u22C3","\\bigcup");q(W,re,Gi,"\u222B","\\int");q(W,re,Gi,"\u222B","\\intop");q(W,re,Gi,"\u222C","\\iint");q(W,re,Gi,"\u222D","\\iiint");q(W,re,Gi,"\u220F","\\prod");q(W,re,Gi,"\u2211","\\sum");q(W,re,Gi,"\u2A02","\\bigotimes");q(W,re,Gi,"\u2A01","\\bigoplus");q(W,re,Gi,"\u2A00","\\bigodot");q(W,re,Gi,"\u222E","\\oint");q(W,re,Gi,"\u222F","\\oiint");q(W,re,Gi,"\u2230","\\oiiint");q(W,re,Gi,"\u2A06","\\bigsqcup");q(W,re,Gi,"\u222B","\\smallint");q(ft,re,pg,"\u2026","\\textellipsis");q(W,re,pg,"\u2026","\\mathellipsis");q(ft,re,pg,"\u2026","\\ldots",!0);q(W,re,pg,"\u2026","\\ldots",!0);q(W,re,pg,"\u22EF","\\@cdots",!0);q(W,re,pg,"\u22F1","\\ddots",!0);q(W,re,ze,"\u22EE","\\varvdots");q(ft,re,ze,"\u22EE","\\varvdots");q(W,re,ai,"\u02CA","\\acute");q(W,re,ai,"\u02CB","\\grave");q(W,re,ai,"\xA8","\\ddot");q(W,re,ai,"~","\\tilde");q(W,re,ai,"\u02C9","\\bar");q(W,re,ai,"\u02D8","\\breve");q(W,re,ai,"\u02C7","\\check");q(W,re,ai,"^","\\hat");q(W,re,ai,"\u20D7","\\vec");q(W,re,ai,"\u02D9","\\dot");q(W,re,ai,"\u02DA","\\mathring");q(W,re,fr,"\uE131","\\@imath");q(W,re,fr,"\uE237","\\@jmath");q(W,re,ze,"\u0131","\u0131");q(W,re,ze,"\u0237","\u0237");q(ft,re,ze,"\u0131","\\i",!0);q(ft,re,ze,"\u0237","\\j",!0);q(ft,re,ze,"\xDF","\\ss",!0);q(ft,re,ze,"\xE6","\\ae",!0);q(ft,re,ze,"\u0153","\\oe",!0);q(ft,re,ze,"\xF8","\\o",!0);q(ft,re,ze,"\xC6","\\AE",!0);q(ft,re,ze,"\u0152","\\OE",!0);q(ft,re,ze,"\xD8","\\O",!0);q(ft,re,ai,"\u02CA","\\'");q(ft,re,ai,"\u02CB","\\`");q(ft,re,ai,"\u02C6","\\^");q(ft,re,ai,"\u02DC","\\~");q(ft,re,ai,"\u02C9","\\=");q(ft,re,ai,"\u02D8","\\u");q(ft,re,ai,"\u02D9","\\.");q(ft,re,ai,"\xB8","\\c");q(ft,re,ai,"\u02DA","\\r");q(ft,re,ai,"\u02C7","\\v");q(ft,re,ai,"\xA8",'\\"');q(ft,re,ai,"\u02DD","\\H");q(ft,re,ai,"\u25EF","\\textcircled");bj={"--":!0,"---":!0,"``":!0,"''":!0};q(ft,re,ze,"\u2013","--",!0);q(ft,re,ze,"\u2013","\\textendash");q(ft,re,ze,"\u2014","---",!0);q(ft,re,ze,"\u2014","\\textemdash");q(ft,re,ze,"\u2018","`",!0);q(ft,re,ze,"\u2018","\\textquoteleft");q(ft,re,ze,"\u2019","'",!0);q(ft,re,ze,"\u2019","\\textquoteright");q(ft,re,ze,"\u201C","``",!0);q(ft,re,ze,"\u201C","\\textquotedblleft");q(ft,re,ze,"\u201D","''",!0);q(ft,re,ze,"\u201D","\\textquotedblright");q(W,re,ze,"\xB0","\\degree",!0);q(ft,re,ze,"\xB0","\\degree");q(ft,re,ze,"\xB0","\\textdegree",!0);q(W,re,ze,"\xA3","\\pounds");q(W,re,ze,"\xA3","\\mathsterling",!0);q(ft,re,ze,"\xA3","\\pounds");q(ft,re,ze,"\xA3","\\textsterling",!0);q(W,Ae,ze,"\u2720","\\maltese");q(ft,Ae,ze,"\u2720","\\maltese");GY='0123456789/@."';for(aw=0;aw0)return Ql(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=w_e(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=kj[u].fontName,p=[u]):(d=uw(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(Sw(a,d,i).metrics)return Ql(a,d,i,r,s.concat(p));if(bj.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(Tf(t.classes)!==Tf(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),S_e=o(t=>{for(var e=0;er&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),Ks=o(function(e,r,n,i){var a=new Np(e,r,n,i);return J8(a),a},"makeSpan"),Tj=o((t,e,r,n)=>new Np(t,e,r,n),"makeSvgSpan"),C_e=o(function(e,r,n){var i=Ks([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=_t(i.height),i.maxFontSize=1,i},"makeLineSpan"),A_e=o(function(e,r,n,i){var a=new M2(e,r,n,i);return J8(a),a},"makeAnchor"),wj=o(function(e){var r=new Lp(e);return J8(r),r},"makeFragment"),__e=o(function(e,r){return e instanceof Lp?Ks([],[e],r):e},"wrapFragment"),D_e=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=Ks(["mspace"],[],e),n=bi(t,e);return r.style.marginRight=_t(n),r},"makeGlue"),uw=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),kj={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ej={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},N_e=o(function(e,r){var[n,i,a]=Ej[e],s=new Uc(n),l=new Zl([s],{width:_t(i),height:_t(a),style:"width:"+_t(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=Tj(["overlay"],[l],r);return u.height=a,u.style.height=_t(a),u.style.width=_t(i),u},"staticSvg"),He={fontMap:kj,makeSymbol:Ql,mathsym:T_e,makeSpan:Ks,makeSvgSpan:Tj,makeLineSpan:C_e,makeAnchor:A_e,makeFragment:wj,wrapFragment:__e,makeVList:R_e,makeOrd:k_e,makeGlue:L_e,staticSvg:N_e,svgData:Ej,tryCombineChars:S_e},xi={number:3,unit:"mu"},Rp={number:4,unit:"mu"},ih={number:5,unit:"mu"},M_e={mord:{mop:xi,mbin:Rp,mrel:ih,minner:xi},mop:{mord:xi,mop:xi,mrel:ih,minner:xi},mbin:{mord:Rp,mop:Rp,mopen:Rp,minner:Rp},mrel:{mord:ih,mop:ih,mopen:ih,minner:ih},mopen:{},mclose:{mop:xi,mbin:Rp,mrel:ih,minner:xi},mpunct:{mord:xi,mop:xi,mrel:ih,mopen:xi,mclose:xi,mpunct:xi,minner:xi},minner:{mord:xi,mop:xi,mbin:Rp,mrel:ih,mopen:xi,mpunct:xi,minner:xi}},I_e={mord:{mop:xi},mop:{mord:xi,mop:xi},mbin:{},mrel:{},mopen:{},mclose:{mop:xi},mpunct:{},minner:{mop:xi}},Sj={},xw={},bw={};o(Ot,"defineFunction");o(Mp,"defineFunctionBuilders");Tw=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),Oi=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),oh=He.makeSpan,O_e=["leftmost","mbin","mopen","mrel","mop","mpunct"],P_e=["rightmost","mrel","mclose","mpunct"],B_e={display:dr.DISPLAY,text:dr.TEXT,script:dr.SCRIPT,scriptscript:dr.SCRIPTSCRIPT},F_e={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},ea=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&P_e.includes(x)?y.classes[0]="mord":x==="mbin"&&O_e.includes(v)&&(g.classes[0]="mord")},{node:d},p,m),UY(a,(g,y)=>{var v=q8(y),x=q8(g),b=v&&x?g.hasClass("mtight")?I_e[v][x]:M_e[v][x]:null;if(b)return He.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),UY=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;sp=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),Cj=o(function(e){return e instanceof Lp||e instanceof M2||e instanceof Np&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),$_e=o(function t(e,r){var n=Cj(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),q8=o(function(e,r){return e?(r&&(e=$_e(e,r)),F_e[e.classes[0]]||null):null},"getTypeOfDomTree"),O2=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return oh(r.concat(n))},"makeNullDelimiter"),rn=o(function(e,r,n){if(!e)return oh();if(xw[e.type]){var i=xw[e.type](e,r);if(n&&r.size!==n.size){i=oh(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new bt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(hw,"buildHTMLUnbreakable");o(U8,"buildHTML");o(Aj,"newDocumentFragment");Es=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=Tf(this.classes));for(var n=0;n0&&(e+=' class ="'+un.escape(Tf(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}},pl=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return un.escape(this.toText())}toText(){return this.text}},W8=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",_t(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},vt={MathNode:Es,TextNode:pl,SpaceNode:W8,newDocumentFragment:Aj},ml=o(function(e,r,n){return qn[r][e]&&qn[r][e].replace&&e.charCodeAt(0)!==55349&&!(bj.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=qn[r][e].replace),new vt.TextNode(e)},"makeText"),eD=o(function(e){return e.length===1?e[0]:new vt.MathNode("mrow",e)},"makeRow"),tD=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathsfit")return"sans-serif-italic";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(["\\imath","\\jmath"].includes(a))return null;qn[i][a]&&qn[i][a].replace&&(a=qn[i][a].replace);var s=He.fontMap[n].fontName;return Z8(a,s,i)?He.fontMap[n].variant:null},"getVariant");o(D8,"isNumberPunctuation");Js=o(function(e,r,n){if(e.length===1){var i=Mn(e[0],r);return n&&i instanceof Es&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l=1&&(s.type==="mn"||D8(s))){var h=u.children[0];h instanceof Es&&h.type==="mn"&&(h.children=[...s.children,...h.children],a.pop())}else if(s.type==="mi"&&s.children.length===1){var f=s.children[0];if(f instanceof pl&&f.text==="\u0338"&&(u.type==="mo"||u.type==="mi"||u.type==="mn")){var d=u.children[0];d instanceof pl&&d.text.length>0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),wf=o(function(e,r,n){return eD(Js(e,r,n))},"buildExpressionRow"),Mn=o(function(e,r){if(!e)return new vt.MathNode("mrow");if(bw[e.type]){var n=bw[e.type](e,r);return n}else throw new bt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(WY,"buildMathML");_j=o(function(e){return new yw({style:e.displayMode?dr.DISPLAY:dr.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),Dj=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=He.makeSpan(n,[e])}return e},"displayWrap"),z_e=o(function(e,r,n){var i=_j(n),a;if(n.output==="mathml")return WY(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=U8(e,i);a=He.makeSpan(["katex"],[s])}else{var l=WY(e,r,i,n.displayMode,!1),u=U8(e,i);a=He.makeSpan(["katex"],[l,u])}return Dj(a,n)},"buildTree"),G_e=o(function(e,r,n){var i=_j(n),a=U8(e,i),s=He.makeSpan(["katex"],[a]);return Dj(s,n)},"buildHTMLTree"),V_e={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},q_e=o(function(e){var r=new vt.MathNode("mo",[new vt.TextNode(V_e[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),U_e={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},W_e=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),H_e=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(["widehat","widecheck","widetilde","utilde"].includes(u)){var h=e,f=W_e(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Uc(p),v=new Zl([y],{width:"100%",height:_t(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:He.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=U_e[u],[T,E,w]=b,k=w/1e3,S=T.length,A,L;if(S===1){var I=b[3];A=["hide-tail"],L=[I]}else if(S===2)A=["halfarrow-left","halfarrow-right"],L=["xMinYMin","xMaxYMin"];else if(S===3)A=["brace-left","brace-center","brace-right"],L=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+S+" children.");for(var N=0;N0&&(i.style.minWidth=_t(a)),i},"svgSpan"),Y_e=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=He.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new I2({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new I2({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new Zl(h,{width:"100%",height:_t(l)});s=He.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=_t(l),s},"encloseSpan"),lh={encloseSpan:Y_e,mathMLnode:q_e,svgSpan:H_e};o(Ir,"assertNodeType");o(rD,"assertSymbolNodeType");o(Cw,"checkSymbolNodeType");nD=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=Ir(t.base,"accent"),r=n.base,t.base=r,i=y_e(rn(t,e)),t.base=n):(n=Ir(t,"accent"),r=n.base);var a=rn(r,e.havingCrampedStyle()),s=n.isShifty&&un.isCharacterBox(r),l=0;if(s){var u=un.getBaseElem(r),h=rn(u,e.havingCrampedStyle());l=zY(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=lh.svgSpan(n,e),p=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+_t(2*l)+")",marginLeft:_t(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=He.staticSvg("vec",e),g=He.svgData.vec[1]):(m=He.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=zY(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=He.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=_t(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=He.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),Rj=o((t,e)=>{var r=t.isStretchy?lh.mathMLnode(t.label):new vt.MathNode("mo",[ml(t.label,t.mode)]),n=new vt.MathNode("mover",[Mn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),j_e=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((t,e)=>{var r=Tw(e[0]),n=!j_e.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:nD,mathmlBuilder:Rj});Ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:nD,mathmlBuilder:Rj});Ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=rn(t.base,e),n=lh.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=He.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return He.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=lh.mathMLnode(t.label),n=new vt.MathNode("munder",[Mn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});fw=o(t=>{var e=new vt.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");Ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=He.wrapFragment(rn(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=He.wrapFragment(rn(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=lh.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),He.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=lh.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=fw(Mn(t.body,e));if(t.below){var a=fw(Mn(t.below,e));n=new vt.MathNode("munderover",[r,a,i])}else n=new vt.MathNode("mover",[r,i])}else if(t.below){var s=fw(Mn(t.below,e));n=new vt.MathNode("munder",[r,s])}else n=fw(),n=new vt.MathNode("mover",[r,n]);return n}});X_e=He.makeSpan;o(Lj,"htmlBuilder$9");o(Nj,"mathmlBuilder$8");Ot({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:Oi(i),isCharacterBox:un.isCharacterBox(i)}},htmlBuilder:Lj,mathmlBuilder:Nj});Aw=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");Ot({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:Aw(e[0]),body:Oi(e[1]),isCharacterBox:un.isCharacterBox(e[1])}}});Ot({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=Aw(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:Oi(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:un.isCharacterBox(u)}},htmlBuilder:Lj,mathmlBuilder:Nj});Ot({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:Aw(e[0]),body:Oi(e[0])}},htmlBuilder(t,e){var r=ea(t.body,e,!0),n=He.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=Js(t.body,e),n=new vt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});K_e={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},HY=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),YY=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),Q_e=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(Z_e,"cdArrow");o(J_e,"parseCD");Ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=He.wrapFragment(rn(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=_t(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new vt.MathNode("mrow",[Mn(t.label,e)]);return r=new vt.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new vt.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=He.wrapFragment(rn(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new vt.MathNode("mrow",[Mn(t.fragment,e)])}});Ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=Ir(e[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new bt("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});Mj=o((t,e)=>{var r=ea(t.body,e.withColor(t.color),!1);return He.makeFragment(r)},"htmlBuilder$8"),Ij=o((t,e)=>{var r=Js(t.body,e.withColor(t.color)),n=new vt.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");Ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=Ir(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:Oi(i)}},htmlBuilder:Mj,mathmlBuilder:Ij});Ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=Ir(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:Mj,mathmlBuilder:Ij});Ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&Ir(i,"size").value}},htmlBuilder(t,e){var r=He.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=_t(bi(t.size,e)))),r},mathmlBuilder(t,e){var r=new vt.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",_t(bi(t.size,e)))),r}});H8={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Oj=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new bt("Expected a control sequence",t);return e},"checkControlSequence"),e8e=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),Pj=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");Ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(H8[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=H8[n.text]),Ir(e.parseFunction(),"internal");throw new bt("Invalid token after macro prefix",n)}});Ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new bt("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new bt('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new bt('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new bt("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===H8[r]),{type:"internal",mode:e.mode}}});Ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=Oj(e.gullet.popToken());e.gullet.consumeSpaces();var i=e8e(e);return Pj(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});Ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=Oj(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return Pj(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});_2=o(function(e,r,n){var i=qn.math[e]&&qn.math[e].replace,a=Z8(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),iD=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=He.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),Bj=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=_t(a),e.height-=a,e.depth+=a},"centerSpan"),t8e=o(function(e,r,n,i,a,s){var l=He.makeSymbol(e,"Main-Regular",a,i),u=iD(l,r,i,s);return n&&Bj(u,i,r),u},"makeSmallDelim"),r8e=o(function(e,r,n,i){return He.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),Fj=o(function(e,r,n,i,a,s){var l=r8e(e,r,a,i),u=iD(He.makeSpan(["delimsizing","size"+r],[l],i),dr.TEXT,i,s);return n&&Bj(u,i,dr.TEXT),u},"makeLargeDelim"),R8=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=He.makeSpan(["delimsizinginner",i],[He.makeSpan([],[He.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),L8=o(function(e,r,n){var i=qc["Size4-Regular"][e.charCodeAt(0)]?qc["Size4-Regular"][e.charCodeAt(0)][4]:qc["Size1-Regular"][e.charCodeAt(0)][4],a=new Uc("inner",u_e(e,Math.round(1e3*r))),s=new Zl([a],{width:_t(i),height:_t(r),style:"width:"+_t(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=He.makeSvgSpan([],[s],n);return l.height=r,l.style.height=_t(r),l.style.width=_t(i),{type:"elem",elem:l}},"makeInner"),Y8=.008,dw={type:"kern",size:-1*Y8},n8e=["|","\\lvert","\\rvert","\\vert"],i8e=["\\|","\\lVert","\\rVert","\\Vert"],$j=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):n8e.includes(e)?(h="\u2223",d="vert",p=333):i8e.includes(e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=_2(l,m,a),y=g.height+g.depth,v=_2(h,m,a),x=v.height+v.depth,b=_2(f,m,a),T=b.height+b.depth,E=0,w=1;if(u!==null){var k=_2(u,m,a);E=k.height+k.depth,w=2}var S=y+T+E,A=Math.max(0,Math.ceil((r-S)/(w*x))),L=S+A*w*x,I=i.fontMetrics().axisHeight;n&&(I*=i.sizeMultiplier);var N=L/2-I,C=[];if(d.length>0){var _=L-y-T,D=Math.round(L*1e3),M=h_e(d,Math.round(_*1e3)),R=new Uc(d,M),P=(p/1e3).toFixed(3)+"em",B=(D/1e3).toFixed(3)+"em",F=new Zl([R],{width:P,height:B,viewBox:"0 0 "+p+" "+D}),G=He.makeSvgSpan([],[F],i);G.height=D/1e3,G.style.width=P,G.style.height=B,C.push({type:"elem",elem:G})}else{if(C.push(R8(f,m,a)),C.push(dw),u===null){var $=L-y-T+2*Y8;C.push(L8(h,$,i))}else{var V=(L-y-T-E)/2+2*Y8;C.push(L8(h,V,i)),C.push(dw),C.push(R8(u,m,a)),C.push(dw),C.push(L8(h,V,i))}C.push(dw),C.push(R8(l,m,a))}var X=i.havingBaseStyle(dr.TEXT),Q=He.makeVList({positionType:"bottom",positionData:N,children:C},X);return iD(He.makeSpan(["delimsizing","mult"],[Q],X),dr.TEXT,i,s)},"makeStackedDelim"),N8=80,M8=.08,I8=o(function(e,r,n,i,a){var s=c_e(e,i,n),l=new Uc(e,s),u=new Zl([l],{width:"400em",height:_t(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return He.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),a8e=o(function(e,r){var n=r.havingBaseSizing(),i=qj("\\surd",e*n.sizeMultiplier,Vj,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+N8,e<1?a=1:e<1.4&&(a=.7),u=(1+s+M8)/a,h=(1+s)/a,l=I8("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+N8)*R2[i.size],h=(R2[i.size]+s)/a,u=(R2[i.size]+s+M8)/a,l=I8("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+M8,h=e+s,f=Math.floor(1e3*e+s)+N8,l=I8("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=_t(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),zj=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],s8e=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],Gj=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],R2=[0,1.2,1.8,2.4,3],o8e=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),zj.includes(e)||Gj.includes(e))return Fj(e,r,!1,n,i,a);if(s8e.includes(e))return $j(e,R2[r],!1,n,i,a);throw new bt("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),l8e=[{type:"small",style:dr.SCRIPTSCRIPT},{type:"small",style:dr.SCRIPT},{type:"small",style:dr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],c8e=[{type:"small",style:dr.SCRIPTSCRIPT},{type:"small",style:dr.SCRIPT},{type:"small",style:dr.TEXT},{type:"stack"}],Vj=[{type:"small",style:dr.SCRIPTSCRIPT},{type:"small",style:dr.SCRIPT},{type:"small",style:dr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],u8e=o(function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},"delimTypeToFont"),qj=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),Uj=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;Gj.includes(e)?l=l8e:zj.includes(e)?l=Vj:l=c8e;var u=qj(e,r,l,i);return u.type==="small"?t8e(e,u.style,n,i,a,s):u.type==="large"?Fj(e,u.size,n,i,a,s):$j(e,r,n,i,a,s)},"makeCustomSizedDelim"),h8e=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return Uj(e,d,!0,i,a,s)},"makeLeftRightDelim"),sh={sqrtImage:a8e,sizedDelim:o8e,sizeToMaxHeight:R2,customSizedDelim:Uj,leftRightDelim:h8e},jY={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},f8e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(_w,"checkDelimiter");Ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((t,e)=>{var r=_w(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:jY[t.funcName].size,mclass:jY[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?He.makeSpan([t.mclass]):sh.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(ml(t.delim,t.mode));var r=new vt.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=_t(sh.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(XY,"assertParsed");Ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new bt("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:_w(e[0],t).text,color:r}},"handler")});Ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=_w(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=Ir(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{XY(t);for(var r=ea(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{XY(t);var r=Js(t.body,e);if(t.left!=="."){var n=new vt.MathNode("mo",[ml(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new vt.MathNode("mo",[ml(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return eD(r)},"mathmlBuilder")});Ot({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=_w(e[0],t);if(!t.parser.leftrightDepth)throw new bt("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=O2(e,[]);else{r=sh.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?ml("|","text"):ml(t.delim,t.mode),n=new vt.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});aD=o((t,e)=>{var r=He.wrapFragment(rn(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=un.isCharacterBox(t.body);if(n==="sout")a=He.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=bi({number:.6,unit:"pt"},e),h=bi({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=_t(d/2+u);var p=Math.floor(1e3*d*i),m=o_e(p),g=new Zl([new Uc("phase",m)],{width:"400em",height:_t(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=He.makeSvgSpan(["hide-tail"],[g],e),a.style.height=_t(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=lh.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=_t(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=_t(x),a.style.borderRightWidth=_t(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var T=/cancel|phase/.test(n)?["svg-align"]:[];b=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:T}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?He.makeSpan(["mord","cancel-lap"],[b],e):He.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),sD=o((t,e)=>{var r=0,n=new vt.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Mn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");Ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=Ir(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:aD,mathmlBuilder:sD});Ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=Ir(e[0],"color-token").color,s=Ir(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:aD,mathmlBuilder:sD});Ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});Ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:aD,mathmlBuilder:sD});Ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});Wj={};o(Wc,"defineEnvironment");Hj={};o(ue,"defineMacro");o(KY,"getHLines");Dw=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new bt("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(oD,"getAutoTag");o(kf,"parseArray");o(lD,"dCellStyle");Hc=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(dr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?bi({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,T=0;function E(we){for(var _e=0;_e0&&(T+=.25),h.push({pos:T,isDashed:we[_e]})}for(o(E,"setHLinePos"),E(s[0]),n=0;n0&&(N+=b,Swe))for(n=0;n=l)){var Y=void 0;(i>0||e.hskipBeforeAndAfter)&&(Y=un.deflt(V.pregap,p),Y!==0&&(M=He.makeSpan(["arraycolsep"],[]),M.style.width=_t(Y),D.push(M)));var le=[];for(n=0;n0){for(var Z=He.makeLineSpan("hline",r,f),xe=He.makeLineSpan("hdashline",r,f),de=[{type:"elem",elem:u,shift:0}];h.length>0;){var Se=h.pop(),Me=Se.pos-C;Se.isDashed?de.push({type:"elem",elem:xe,shift:Me}):de.push({type:"elem",elem:Z,shift:Me})}u=He.makeVList({positionType:"individualShift",children:de},r)}if(P.length===0)return He.makeSpan(["mord"],[u],r);var ke=He.makeVList({positionType:"individualShift",children:P},r);return ke=He.makeSpan(["tag"],[ke],r),He.makeFragment([u,ke])},"htmlBuilder"),d8e={c:"center ",l:"left ",r:"right "},Yc=o(function(e,r){for(var n=[],i=new vt.MathNode("mtd",[],["mtr-glue"]),a=new vt.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var T=x;T0?"left ":"",p+=A[A.length-1].length>0?"right ":"";for(var L=1;L-1?"alignat":"align",a=e.envName==="split",s=kf(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:oD(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");Wc({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=Cw(e[0]),n=r?[e[0]]:Ir(e[0],"ordgroup").body,i=n.map(function(s){var l=rD(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new bt("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return kf(t.parser,a,lD(t.envName))},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new bt("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=kf(t.parser,n,lD(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=kf(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=Cw(e[0]),n=r?[e[0]]:Ir(e[0],"ordgroup").body,i=n.map(function(s){var l=rD(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new bt("Unknown column alignment: "+u,s)});if(i.length>1)throw new bt("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=kf(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new bt("{subarray} can contain only one column");return a},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=kf(t.parser,e,lD(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Yj,htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){["gather","gather*"].includes(t.envName)&&Dw(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:oD(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return kf(t.parser,e,"display")},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Yj,htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){Dw(t);var e={autoTag:oD(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return kf(t.parser,e,"display")},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["CD"],props:{numArgs:0},handler(t){return Dw(t),J_e(t.parser)},htmlBuilder:Hc,mathmlBuilder:Yc});ue("\\nonumber","\\gdef\\@eqnsw{0}");ue("\\notag","\\nonumber");Ot({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new bt(t.funcName+" valid only within array environment")}});QY=Wj;Ot({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new bt("Invalid environment name",i);for(var a="",s=0;s{var r=t.font,n=e.withFont(r);return rn(t.body,n)},"htmlBuilder$5"),Xj=o((t,e)=>{var r=t.font,n=e.withFont(r);return Mn(t.body,n)},"mathmlBuilder$4"),ZY={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Ot({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=Tw(e[0]),a=n;return a in ZY&&(a=ZY[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:jj,mathmlBuilder:Xj});Ot({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=un.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:Aw(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Ot({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:jj,mathmlBuilder:Xj});Kj=o((t,e)=>{var r=e;return t==="display"?r=r.id>=dr.SCRIPT.id?r.text():dr.DISPLAY:t==="text"&&r.size===dr.DISPLAY.size?r=dr.TEXT:t==="script"?r=dr.SCRIPT:t==="scriptscript"&&(r=dr.SCRIPTSCRIPT),r},"adjustStyle"),cD=o((t,e)=>{var r=Kj(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=rn(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new vt.MathNode("mfrac",[Mn(t.numer,e),Mn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=bi(t.barSize,e);r.setAttribute("linethickness",_t(n))}var i=Kj(t.size,e.style);if(i.size!==e.style.size){r=new vt.MathNode("mstyle",[r]);var a=i.size===dr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new vt.MathNode("mo",[new vt.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new vt.MathNode("mo",[new vt.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return eD(s)}return r},"mathmlBuilder$3");Ot({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:cD,mathmlBuilder:uD});Ot({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Ot({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});JY=["display","text","script","scriptscript"],ej=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");Ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=Tw(e[0]),s=a.type==="atom"&&a.family==="open"?ej(a.text):null,l=Tw(e[1]),u=l.type==="atom"&&l.family==="close"?ej(l.text):null,h=Ir(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=Ir(m.body[0],"textord");p=JY[Number(g.text)]}}else m=Ir(m,"textord"),p=JY[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:cD,mathmlBuilder:uD});Ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ir(e[0],"size").value,token:i}}});Ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=H7e(Ir(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:cD,mathmlBuilder:uD});Qj=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?rn(t.sup,e.havingStyle(r.sup()),e):rn(t.sub,e.havingStyle(r.sub()),e),i=Ir(t.base,"horizBrace")):i=Ir(t,"horizBrace");var a=rn(i.base,e.havingBaseStyle(dr.DISPLAY)),s=lh.svgSpan(i,e),l;if(i.isOver?(l=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=He.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=He.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=He.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return He.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),p8e=o((t,e)=>{var r=lh.mathMLnode(t.label);return new vt.MathNode(t.isOver?"mover":"munder",[Mn(t.base,e),r])},"mathmlBuilder$2");Ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:Qj,mathmlBuilder:p8e});Ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=Ir(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:Oi(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=ea(t.body,e,!1);return He.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=wf(t.body,e);return r instanceof Es||(r=new Es("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});Ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=Ir(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=t,a=Ir(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=ea(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=He.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>wf(t.body,e),"mathmlBuilder")});Ot({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:Oi(e[0]),mathml:Oi(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=ea(t.html,e,!1);return He.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>wf(t.mathml,e),"mathmlBuilder")});O8=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new bt("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!gj(n))throw new bt("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Ot({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=Ir(r[0],"raw").string,h=u.split(","),f=0;f{var r=bi(t.height,e),n=0;t.totalheight.number>0&&(n=bi(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=bi(t.width,e));var a={height:_t(r+n)};i>0&&(a.width=_t(i)),n>0&&(a.verticalAlign=_t(-n));var s=new G8(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new vt.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=bi(t.height,e),i=0;if(t.totalheight.number>0&&(i=bi(t.totalheight,e)-n,r.setAttribute("valign",_t(-i))),r.setAttribute("height",_t(n+i)),t.width.number>0){var a=bi(t.width,e);r.setAttribute("width",_t(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});Ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=Ir(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return He.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=bi(t.dimension,e);return new vt.SpaceNode(r)}});Ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=He.makeSpan([],[rn(t.body,e)]),r=He.makeSpan(["inner"],[r],e)):r=He.makeSpan(["inner"],[rn(t.body,e)]);var n=He.makeSpan(["fix"],[]),i=He.makeSpan([t.alignment],[r,n],e),a=He.makeSpan(["strut"]);return a.style.height=_t(i.height+i.depth),i.depth&&(a.style.verticalAlign=_t(-i.depth)),i.children.unshift(a),i=He.makeSpan(["thinbox"],[i],e),He.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new vt.MathNode("mpadded",[Mn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new bt("Mismatched "+t.funcName)}});tj=o((t,e)=>{switch(e.style.size){case dr.DISPLAY.size:return t.display;case dr.TEXT.size:return t.text;case dr.SCRIPT.size:return t.script;case dr.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");Ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:Oi(e[0]),text:Oi(e[1]),script:Oi(e[2]),scriptscript:Oi(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=tj(t,e),n=ea(r,e,!1);return He.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=tj(t,e);return wf(r,e)},"mathmlBuilder")});Zj=o((t,e,r,n,i,a,s)=>{t=He.makeSpan([],[t]);var l=r&&un.isCharacterBox(r),u,h;if(e){var f=rn(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=rn(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=He.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:_t(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:_t(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=He.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:_t(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=He.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:_t(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=He.makeSpan(["mspace"],[],n);x.style.marginRight=_t(a),v.unshift(x)}return He.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),Jj=["\\smallint"],mg=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=Ir(t.base,"op"),i=!0):a=Ir(t,"op");var s=e.style,l=!1;s.size===dr.DISPLAY.size&&a.symbol&&!Jj.includes(a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=He.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=He.staticSvg(f+"Size"+(l?"2":"1"),e);u=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=ea(a.body,e,!0);m.length===1&&m[0]instanceof Zs?(u=m[0],u.classes[0]="mop"):u=He.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y{var r;if(t.symbol)r=new Es("mo",[ml(t.name,t.mode)]),Jj.includes(t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new Es("mo",Js(t.body,e));else{r=new Es("mi",[new pl(t.name.slice(1))]);var n=new Es("mo",[ml("\u2061","text")]);t.parentIsSupSub?r=new Es("mrow",[r,n]):r=Aj([r,n])}return r},"mathmlBuilder$1"),m8e={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Ot({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=m8e[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:mg,mathmlBuilder:P2});Ot({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Oi(n)}},"handler"),htmlBuilder:mg,mathmlBuilder:P2});g8e={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Ot({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:mg,mathmlBuilder:P2});Ot({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:mg,mathmlBuilder:P2});Ot({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=g8e[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:mg,mathmlBuilder:P2});eX=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=Ir(t.base,"operatorname"),i=!0):a=Ir(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=ea(l,e.withFont("mathrm"),!0),h=0;h{for(var r=Js(t.body,e.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new vt.TextNode(l)]}var u=new vt.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new vt.MathNode("mo",[ml("\u2061","text")]);return t.parentIsSupSub?new vt.MathNode("mrow",[u,h]):vt.newDocumentFragment([u,h])},"mathmlBuilder");Ot({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:Oi(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:eX,mathmlBuilder:y8e});ue("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Mp({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?He.makeFragment(ea(t.body,e,!1)):He.makeSpan(["mord"],ea(t.body,e,!0),e)},mathmlBuilder(t,e){return wf(t.body,e,!0)}});Ot({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=rn(t.body,e.havingCrampedStyle()),n=He.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return He.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new vt.MathNode("mo",[new vt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new vt.MathNode("mover",[Mn(t.body,e),r]);return n.setAttribute("accent","true"),n}});Ot({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:Oi(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=ea(t.body,e.withPhantom(),!1);return He.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=Js(t.body,e);return new vt.MathNode("mphantom",r)},"mathmlBuilder")});Ot({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=He.makeSpan([],[rn(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=Js(Oi(t.body),e),n=new vt.MathNode("mphantom",r),i=new vt.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Ot({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=He.makeSpan(["inner"],[rn(t.body,e.withPhantom())]),n=He.makeSpan(["fix"],[]);return He.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=Js(Oi(t.body),e),n=new vt.MathNode("mphantom",r),i=new vt.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Ot({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=Ir(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=rn(t.body,e),n=bi(t.dy,e);return He.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new vt.MathNode("mpadded",[Mn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});Ot({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Ot({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=Ir(e[0],"size"),s=Ir(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&Ir(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=He.makeSpan(["mord","rule"],[],e),n=bi(t.width,e),i=bi(t.height,e),a=t.shift?bi(t.shift,e):0;return r.style.borderRightWidth=_t(n),r.style.borderTopWidth=_t(i),r.style.bottom=_t(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=bi(t.width,e),n=bi(t.height,e),i=t.shift?bi(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new vt.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",_t(r)),s.setAttribute("height",_t(n));var l=new vt.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",_t(i)):(l.setAttribute("height",_t(i)),l.setAttribute("depth",_t(-i))),l.setAttribute("voffset",_t(i)),l}});o(tX,"sizingGroup");rj=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],v8e=o((t,e)=>{var r=e.havingSize(t.size);return tX(t.body,r,e)},"htmlBuilder");Ot({type:"sizing",names:rj,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:rj.indexOf(n)+1,body:a}},"handler"),htmlBuilder:v8e,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=Js(t.body,r),i=new vt.MathNode("mstyle",n);return i.setAttribute("mathsize",_t(r.sizeMultiplier)),i},"mathmlBuilder")});Ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&Ir(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=He.makeSpan([],[rn(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new vt.MathNode("mpadded",[Mn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Ot({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=rn(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=He.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=_t(f);var m=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(dr.SCRIPTSCRIPT),y=rn(t.index,g,e),v=.6*(m.height-m.depth),x=He.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=He.makeSpan(["root"],[x]);return He.makeSpan(["mord","sqrt"],[b,m],e)}else return He.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new vt.MathNode("mroot",[Mn(r,e),Mn(n,e)]):new vt.MathNode("msqrt",[Mn(r,e)])}});nj={display:dr.DISPLAY,text:dr.TEXT,script:dr.SCRIPT,scriptscript:dr.SCRIPTSCRIPT};Ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=nj[t.style],n=e.havingStyle(r).withFont("");return tX(t.body,n,e)},mathmlBuilder(t,e){var r=nj[t.style],n=e.havingStyle(r),i=Js(t.body,n),a=new vt.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});x8e=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===dr.DISPLAY.size||n.alwaysHandleSupSub);return i?mg:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===dr.DISPLAY.size||n.limits);return a?eX:null}else{if(n.type==="accent")return un.isCharacterBox(n.base)?nD:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?Qj:null}else return null}else return null},"htmlBuilderDelegate");Mp({type:"supsub",htmlBuilder(t,e){var r=x8e(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=rn(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&un.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=rn(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=rn(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===dr.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=_t(.5/h.ptPerEm/v),b=null;if(u){var T=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof Zs||T)&&(b=_t(-s.italic))}var E;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var w=h.defaultRuleThickness,k=4*w;if(f-l.depth-(u.height-d)0&&(f+=S,d-=S)}var A=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];E=He.makeVList({positionType:"individualShift",children:A},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var L=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];E=He.makeVList({positionType:"shift",positionData:d,children:L},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),E=He.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var I=q8(s,"right")||"mord";return He.makeSpan([I],[s,He.makeSpan(["msupsub"],[E])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[Mn(t.base,e)];t.sub&&a.push(Mn(t.sub,e)),t.sup&&a.push(Mn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===dr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===dr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===dr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===dr.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===dr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===dr.DISPLAY)?s="mover":s="msup"}return new vt.MathNode(s,a)}});Mp({type:"atom",htmlBuilder(t,e){return He.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new vt.MathNode("mo",[ml(t.text,t.mode)]);if(t.family==="bin"){var n=tD(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});rX={mi:"italic",mn:"normal",mtext:"normal"};Mp({type:"mathord",htmlBuilder(t,e){return He.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new vt.MathNode("mi",[ml(t.text,t.mode,e)]),n=tD(t,e)||"italic";return n!==rX[r.type]&&r.setAttribute("mathvariant",n),r}});Mp({type:"textord",htmlBuilder(t,e){return He.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=ml(t.text,t.mode,e),n=tD(t,e)||"normal",i;return t.mode==="text"?i=new vt.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new vt.MathNode("mn",[r]):t.text==="\\prime"?i=new vt.MathNode("mo",[r]):i=new vt.MathNode("mi",[r]),n!==rX[i.type]&&i.setAttribute("mathvariant",n),i}});P8={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},B8={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Mp({type:"spacing",htmlBuilder(t,e){if(B8.hasOwnProperty(t.text)){var r=B8[t.text].className||"";if(t.mode==="text"){var n=He.makeOrd(t,e,"textord");return n.classes.push(r),n}else return He.makeSpan(["mspace",r],[He.mathsym(t.text,t.mode,e)],e)}else{if(P8.hasOwnProperty(t.text))return He.makeSpan(["mspace",P8[t.text]],[],e);throw new bt('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(B8.hasOwnProperty(t.text))r=new vt.MathNode("mtext",[new vt.TextNode("\xA0")]);else{if(P8.hasOwnProperty(t.text))return new vt.MathNode("mspace");throw new bt('Unknown type of space "'+t.text+'"')}return r}});ij=o(()=>{var t=new vt.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");Mp({type:"tag",mathmlBuilder(t,e){var r=new vt.MathNode("mtable",[new vt.MathNode("mtr",[ij(),new vt.MathNode("mtd",[wf(t.body,e)]),ij(),new vt.MathNode("mtd",[wf(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});aj={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},sj={"\\textbf":"textbf","\\textmd":"textmd"},b8e={"\\textit":"textit","\\textup":"textup"},oj=o((t,e)=>{var r=t.font;if(r){if(aj[r])return e.withTextFontFamily(aj[r]);if(sj[r])return e.withTextFontWeight(sj[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(b8e[r])},"optionsWithFont");Ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:Oi(i),font:n}},htmlBuilder(t,e){var r=oj(t,e),n=ea(t.body,r,!0);return He.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=oj(t,e);return wf(t.body,r)}});Ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=rn(t.body,e),n=He.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=He.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return He.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new vt.MathNode("mo",[new vt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new vt.MathNode("munder",[Mn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});Ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=rn(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return He.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new vt.MathNode("mpadded",[Mn(t.body,e)],["vcenter"])}});Ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new bt("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=lj(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),bf=Sj,nX=`[ \r + ]`,T8e="\\\\[a-zA-Z@]+",w8e="\\\\[^\uD800-\uDFFF]",k8e="("+T8e+")"+nX+"*",E8e=`\\\\( +|[ \r ]+ +?)[ \r ]*`,j8="[\u0300-\u036F]",S8e=new RegExp(j8+"+$"),C8e="("+nX+"+)|"+(E8e+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(j8+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(j8+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+k8e)+("|"+w8e+")"),ww=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(C8e,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Po("EOF",new Qs(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new bt("Unexpected character: '"+e[r]+"'",new Po(e[r],new Qs(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Po(i,new Qs(this,r,this.tokenRegex.lastIndex))}},X8=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new bt("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},A8e=Hj;ue("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});ue("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});ue("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});ue("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});ue("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});ue("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");ue("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});cj={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};ue("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new bt("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=cj[e.text],n==null||n>=r)throw new bt("Invalid base-"+r+" digit "+e.text);for(var i;(i=cj[t.future().text])!=null&&i{var i=t.consumeArg().tokens;if(i.length!==1)throw new bt("\\newcommand's first argument must be a macro name");var a=i[0].text,s=t.isDefined(a);if(s&&!e)throw new bt("\\newcommand{"+a+"} attempting to redefine "+(a+"; use \\renewcommand"));if(!s&&!r)throw new bt("\\renewcommand{"+a+"} when command "+a+" does not yet exist; use \\newcommand");var l=0;if(i=t.consumeArg().tokens,i.length===1&&i[0].text==="["){for(var u="",h=t.expandNextToken();h.text!=="]"&&h.text!=="EOF";)u+=h.text,h=t.expandNextToken();if(!u.match(/^\s*[0-9]+\s*$/))throw new bt("Invalid number of arguments: "+u);l=parseInt(u),i=t.consumeArg().tokens}return s&&n||t.macros.set(a,{tokens:i,numArgs:l}),""},"newcommand");ue("\\newcommand",t=>hD(t,!1,!0,!1));ue("\\renewcommand",t=>hD(t,!0,!1,!1));ue("\\providecommand",t=>hD(t,!0,!0,!0));ue("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});ue("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});ue("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),bf[r],qn.math[r],qn.text[r]),""});ue("\\bgroup","{");ue("\\egroup","}");ue("~","\\nobreakspace");ue("\\lq","`");ue("\\rq","'");ue("\\aa","\\r a");ue("\\AA","\\r A");ue("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");ue("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");ue("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");ue("\u212C","\\mathscr{B}");ue("\u2130","\\mathscr{E}");ue("\u2131","\\mathscr{F}");ue("\u210B","\\mathscr{H}");ue("\u2110","\\mathscr{I}");ue("\u2112","\\mathscr{L}");ue("\u2133","\\mathscr{M}");ue("\u211B","\\mathscr{R}");ue("\u212D","\\mathfrak{C}");ue("\u210C","\\mathfrak{H}");ue("\u2128","\\mathfrak{Z}");ue("\\Bbbk","\\Bbb{k}");ue("\xB7","\\cdotp");ue("\\llap","\\mathllap{\\textrm{#1}}");ue("\\rlap","\\mathrlap{\\textrm{#1}}");ue("\\clap","\\mathclap{\\textrm{#1}}");ue("\\mathstrut","\\vphantom{(}");ue("\\underbar","\\underline{\\text{#1}}");ue("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');ue("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");ue("\\ne","\\neq");ue("\u2260","\\neq");ue("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");ue("\u2209","\\notin");ue("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");ue("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");ue("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");ue("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");ue("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");ue("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");ue("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");ue("\u27C2","\\perp");ue("\u203C","\\mathclose{!\\mkern-0.8mu!}");ue("\u220C","\\notni");ue("\u231C","\\ulcorner");ue("\u231D","\\urcorner");ue("\u231E","\\llcorner");ue("\u231F","\\lrcorner");ue("\xA9","\\copyright");ue("\xAE","\\textregistered");ue("\uFE0F","\\textregistered");ue("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');ue("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');ue("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');ue("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');ue("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");ue("\u22EE","\\vdots");ue("\\varGamma","\\mathit{\\Gamma}");ue("\\varDelta","\\mathit{\\Delta}");ue("\\varTheta","\\mathit{\\Theta}");ue("\\varLambda","\\mathit{\\Lambda}");ue("\\varXi","\\mathit{\\Xi}");ue("\\varPi","\\mathit{\\Pi}");ue("\\varSigma","\\mathit{\\Sigma}");ue("\\varUpsilon","\\mathit{\\Upsilon}");ue("\\varPhi","\\mathit{\\Phi}");ue("\\varPsi","\\mathit{\\Psi}");ue("\\varOmega","\\mathit{\\Omega}");ue("\\substack","\\begin{subarray}{c}#1\\end{subarray}");ue("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");ue("\\boxed","\\fbox{$\\displaystyle{#1}$}");ue("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");ue("\\implies","\\DOTSB\\;\\Longrightarrow\\;");ue("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");ue("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");ue("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");uj={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};ue("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in uj?e=uj[r]:(r.slice(0,4)==="\\not"||r in qn.math&&["bin","rel"].includes(qn.math[r].group))&&(e="\\dotsb"),e});fD={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};ue("\\dotso",function(t){var e=t.future().text;return e in fD?"\\ldots\\,":"\\ldots"});ue("\\dotsc",function(t){var e=t.future().text;return e in fD&&e!==","?"\\ldots\\,":"\\ldots"});ue("\\cdots",function(t){var e=t.future().text;return e in fD?"\\@cdots\\,":"\\@cdots"});ue("\\dotsb","\\cdots");ue("\\dotsm","\\cdots");ue("\\dotsi","\\!\\cdots");ue("\\dotsx","\\ldots\\,");ue("\\DOTSI","\\relax");ue("\\DOTSB","\\relax");ue("\\DOTSX","\\relax");ue("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");ue("\\,","\\tmspace+{3mu}{.1667em}");ue("\\thinspace","\\,");ue("\\>","\\mskip{4mu}");ue("\\:","\\tmspace+{4mu}{.2222em}");ue("\\medspace","\\:");ue("\\;","\\tmspace+{5mu}{.2777em}");ue("\\thickspace","\\;");ue("\\!","\\tmspace-{3mu}{.1667em}");ue("\\negthinspace","\\!");ue("\\negmedspace","\\tmspace-{4mu}{.2222em}");ue("\\negthickspace","\\tmspace-{5mu}{.277em}");ue("\\enspace","\\kern.5em ");ue("\\enskip","\\hskip.5em\\relax");ue("\\quad","\\hskip1em\\relax");ue("\\qquad","\\hskip2em\\relax");ue("\\tag","\\@ifstar\\tag@literal\\tag@paren");ue("\\tag@paren","\\tag@literal{({#1})}");ue("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new bt("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});ue("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");ue("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");ue("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");ue("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");ue("\\newline","\\\\\\relax");ue("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");iX=_t(qc["Main-Regular"][84][1]-.7*qc["Main-Regular"][65][1]);ue("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+iX+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");ue("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+iX+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");ue("\\hspace","\\@ifstar\\@hspacer\\@hspace");ue("\\@hspace","\\hskip #1\\relax");ue("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");ue("\\ordinarycolon",":");ue("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");ue("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');ue("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');ue("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');ue("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');ue("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');ue("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');ue("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');ue("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');ue("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');ue("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');ue("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');ue("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');ue("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');ue("\u2237","\\dblcolon");ue("\u2239","\\eqcolon");ue("\u2254","\\coloneqq");ue("\u2255","\\eqqcolon");ue("\u2A74","\\Coloneqq");ue("\\ratio","\\vcentcolon");ue("\\coloncolon","\\dblcolon");ue("\\colonequals","\\coloneqq");ue("\\coloncolonequals","\\Coloneqq");ue("\\equalscolon","\\eqqcolon");ue("\\equalscoloncolon","\\Eqqcolon");ue("\\colonminus","\\coloneq");ue("\\coloncolonminus","\\Coloneq");ue("\\minuscolon","\\eqcolon");ue("\\minuscoloncolon","\\Eqcolon");ue("\\coloncolonapprox","\\Colonapprox");ue("\\coloncolonsim","\\Colonsim");ue("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ue("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");ue("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ue("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");ue("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");ue("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");ue("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");ue("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");ue("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");ue("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");ue("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");ue("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");ue("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");ue("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");ue("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");ue("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");ue("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");ue("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");ue("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");ue("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");ue("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");ue("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");ue("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");ue("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");ue("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");ue("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");ue("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");ue("\\imath","\\html@mathml{\\@imath}{\u0131}");ue("\\jmath","\\html@mathml{\\@jmath}{\u0237}");ue("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");ue("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");ue("\u27E6","\\llbracket");ue("\u27E7","\\rrbracket");ue("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");ue("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");ue("\u2983","\\lBrace");ue("\u2984","\\rBrace");ue("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");ue("\u29B5","\\minuso");ue("\\darr","\\downarrow");ue("\\dArr","\\Downarrow");ue("\\Darr","\\Downarrow");ue("\\lang","\\langle");ue("\\rang","\\rangle");ue("\\uarr","\\uparrow");ue("\\uArr","\\Uparrow");ue("\\Uarr","\\Uparrow");ue("\\N","\\mathbb{N}");ue("\\R","\\mathbb{R}");ue("\\Z","\\mathbb{Z}");ue("\\alef","\\aleph");ue("\\alefsym","\\aleph");ue("\\Alpha","\\mathrm{A}");ue("\\Beta","\\mathrm{B}");ue("\\bull","\\bullet");ue("\\Chi","\\mathrm{X}");ue("\\clubs","\\clubsuit");ue("\\cnums","\\mathbb{C}");ue("\\Complex","\\mathbb{C}");ue("\\Dagger","\\ddagger");ue("\\diamonds","\\diamondsuit");ue("\\empty","\\emptyset");ue("\\Epsilon","\\mathrm{E}");ue("\\Eta","\\mathrm{H}");ue("\\exist","\\exists");ue("\\harr","\\leftrightarrow");ue("\\hArr","\\Leftrightarrow");ue("\\Harr","\\Leftrightarrow");ue("\\hearts","\\heartsuit");ue("\\image","\\Im");ue("\\infin","\\infty");ue("\\Iota","\\mathrm{I}");ue("\\isin","\\in");ue("\\Kappa","\\mathrm{K}");ue("\\larr","\\leftarrow");ue("\\lArr","\\Leftarrow");ue("\\Larr","\\Leftarrow");ue("\\lrarr","\\leftrightarrow");ue("\\lrArr","\\Leftrightarrow");ue("\\Lrarr","\\Leftrightarrow");ue("\\Mu","\\mathrm{M}");ue("\\natnums","\\mathbb{N}");ue("\\Nu","\\mathrm{N}");ue("\\Omicron","\\mathrm{O}");ue("\\plusmn","\\pm");ue("\\rarr","\\rightarrow");ue("\\rArr","\\Rightarrow");ue("\\Rarr","\\Rightarrow");ue("\\real","\\Re");ue("\\reals","\\mathbb{R}");ue("\\Reals","\\mathbb{R}");ue("\\Rho","\\mathrm{P}");ue("\\sdot","\\cdot");ue("\\sect","\\S");ue("\\spades","\\spadesuit");ue("\\sub","\\subset");ue("\\sube","\\subseteq");ue("\\supe","\\supseteq");ue("\\Tau","\\mathrm{T}");ue("\\thetasym","\\vartheta");ue("\\weierp","\\wp");ue("\\Zeta","\\mathrm{Z}");ue("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");ue("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");ue("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");ue("\\bra","\\mathinner{\\langle{#1}|}");ue("\\ket","\\mathinner{|{#1}\\rangle}");ue("\\braket","\\mathinner{\\langle{#1}\\rangle}");ue("\\Bra","\\left\\langle#1\\right|");ue("\\Ket","\\left|#1\\right\\rangle");aX=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");ue("\\bra@ket",aX(!1));ue("\\bra@set",aX(!0));ue("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");ue("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");ue("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");ue("\\angln","{\\angl n}");ue("\\blue","\\textcolor{##6495ed}{#1}");ue("\\orange","\\textcolor{##ffa500}{#1}");ue("\\pink","\\textcolor{##ff00af}{#1}");ue("\\red","\\textcolor{##df0030}{#1}");ue("\\green","\\textcolor{##28ae7b}{#1}");ue("\\gray","\\textcolor{gray}{#1}");ue("\\purple","\\textcolor{##9d38bd}{#1}");ue("\\blueA","\\textcolor{##ccfaff}{#1}");ue("\\blueB","\\textcolor{##80f6ff}{#1}");ue("\\blueC","\\textcolor{##63d9ea}{#1}");ue("\\blueD","\\textcolor{##11accd}{#1}");ue("\\blueE","\\textcolor{##0c7f99}{#1}");ue("\\tealA","\\textcolor{##94fff5}{#1}");ue("\\tealB","\\textcolor{##26edd5}{#1}");ue("\\tealC","\\textcolor{##01d1c1}{#1}");ue("\\tealD","\\textcolor{##01a995}{#1}");ue("\\tealE","\\textcolor{##208170}{#1}");ue("\\greenA","\\textcolor{##b6ffb0}{#1}");ue("\\greenB","\\textcolor{##8af281}{#1}");ue("\\greenC","\\textcolor{##74cf70}{#1}");ue("\\greenD","\\textcolor{##1fab54}{#1}");ue("\\greenE","\\textcolor{##0d923f}{#1}");ue("\\goldA","\\textcolor{##ffd0a9}{#1}");ue("\\goldB","\\textcolor{##ffbb71}{#1}");ue("\\goldC","\\textcolor{##ff9c39}{#1}");ue("\\goldD","\\textcolor{##e07d10}{#1}");ue("\\goldE","\\textcolor{##a75a05}{#1}");ue("\\redA","\\textcolor{##fca9a9}{#1}");ue("\\redB","\\textcolor{##ff8482}{#1}");ue("\\redC","\\textcolor{##f9685d}{#1}");ue("\\redD","\\textcolor{##e84d39}{#1}");ue("\\redE","\\textcolor{##bc2612}{#1}");ue("\\maroonA","\\textcolor{##ffbde0}{#1}");ue("\\maroonB","\\textcolor{##ff92c6}{#1}");ue("\\maroonC","\\textcolor{##ed5fa6}{#1}");ue("\\maroonD","\\textcolor{##ca337c}{#1}");ue("\\maroonE","\\textcolor{##9e034e}{#1}");ue("\\purpleA","\\textcolor{##ddd7ff}{#1}");ue("\\purpleB","\\textcolor{##c6b9fc}{#1}");ue("\\purpleC","\\textcolor{##aa87ff}{#1}");ue("\\purpleD","\\textcolor{##7854ab}{#1}");ue("\\purpleE","\\textcolor{##543b78}{#1}");ue("\\mintA","\\textcolor{##f5f9e8}{#1}");ue("\\mintB","\\textcolor{##edf2df}{#1}");ue("\\mintC","\\textcolor{##e0e5cc}{#1}");ue("\\grayA","\\textcolor{##f6f7f7}{#1}");ue("\\grayB","\\textcolor{##f0f1f2}{#1}");ue("\\grayC","\\textcolor{##e3e5e6}{#1}");ue("\\grayD","\\textcolor{##d6d8da}{#1}");ue("\\grayE","\\textcolor{##babec2}{#1}");ue("\\grayF","\\textcolor{##888d93}{#1}");ue("\\grayG","\\textcolor{##626569}{#1}");ue("\\grayH","\\textcolor{##3b3e40}{#1}");ue("\\grayI","\\textcolor{##21242c}{#1}");ue("\\kaBlue","\\textcolor{##314453}{#1}");ue("\\kaGreen","\\textcolor{##71B307}{#1}");sX={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},K8=class{static{o(this,"MacroExpander")}constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new X8(A8e,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new ww(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Po("EOF",n.loc)),this.pushTokens(i),new Po("",Qs.range(r,n))}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new bt("Extra }",a)}else if(a.text==="EOF")throw new bt("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new bt("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new bt("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new bt("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new bt("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new bt("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Po(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new ww(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||bf.hasOwnProperty(e)||qn.math.hasOwnProperty(e)||qn.text.hasOwnProperty(e)||sX.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:bf.hasOwnProperty(e)&&!bf[e].primitive}},hj=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,pw=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),F8={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},fj={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},kw=class t{static{o(this,"Parser")}constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new K8(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new bt("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Po("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&bf[i.text]&&bf[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=qn[this.mode][r].group,u=Qs.range(e),h;if(v_e.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(pj(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:Qs.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),fl.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}var Ip,D8e,R8e,yX,mX,wr,N8e,M8e,I8e,O8e,vX,Op,P8e,B8e,jc,mD,F8e,$8e,gX,Lw,Jn,Pp,z8e,gg,st,Ur=O(()=>{"use strict";S2();$r();Ip=//gi,D8e=o(t=>t?vX(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),R8e=(()=>{let t=!1;return()=>{t||(L8e(),t=!0)}})();o(L8e,"setupDompurifyHooks");yX=o(t=>(R8e(),fl.sanitize(t)),"removeScript"),mX=o((t,e)=>{if(Sr(e)){let r=e.securityLevel;r==="antiscript"||r==="strict"||r==="sandbox"?t=yX(t):r!=="loose"&&(t=vX(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=O8e(t))}return t},"sanitizeMore"),wr=o((t,e)=>t&&(e.dompurifyConfig?t=fl.sanitize(mX(t,e),e.dompurifyConfig).toString():t=fl.sanitize(mX(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),N8e=o((t,e)=>typeof t=="string"?wr(t,e):t.flat().map(r=>wr(r,e)),"sanitizeTextOrArray"),M8e=o(t=>Ip.test(t),"hasBreaks"),I8e=o(t=>t.split(Ip),"splitBreaks"),O8e=o(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),vX=o(t=>t.replace(Ip,"#br#"),"breakToPlaceholder"),Op=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=CSS.escape(e)),e},"getUrl"),P8e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),B8e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),jc=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,t.split(e).length-1),"countOccurrence"),F8e=o((t,e)=>{let r=mD(t,"~"),n=mD(e,"~");return r===1&&n===1},"shouldCombineSets"),$8e=o(t=>{let e=mD(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),gX=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),Lw=/\$\$(.*)\$\$/g,Jn=o(t=>(t.match(Lw)?.length??0)>0,"hasKatex"),Pp=o(async(t,e)=>{let r=document.createElement("div");r.innerHTML=await gg(t,e),r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),z8e=o(async(t,e)=>{if(!Jn(t))return t;if(!(gX()||e.legacyMathML||e.forceLegacyMathML))return t.replace(Lw,"MathML is unsupported in this environment.");{let{default:r}=await Promise.resolve().then(()=>(pX(),dX)),n=e.forceLegacyMathML||!gX()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(Ip).map(i=>Jn(i)?`
${i}
`:`
${i}
`).join("").replace(Lw,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))}return t.replace(Lw,"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.")},"renderKatexUnsanitized"),gg=o(async(t,e)=>wr(await z8e(t,e),e),"renderKatexSanitized"),st={getRows:D8e,sanitizeText:wr,sanitizeTextOrArray:N8e,hasBreaks:M8e,splitBreaks:I8e,lineBreakRegex:Ip,removeScript:yX,getUrl:Op,evaluate:Xs,getMax:P8e,getMin:B8e}});var yD,gD,xX,Nw,bX,TX,eo,Xc=O(()=>{"use strict";AH();$r();Ur();xt();yD={body:'?',height:80,width:80},gD=new Map,xX=new Map,Nw=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(K.debug("Registering icon pack:",e.name),"loader"in e)xX.set(e.name,e.loader);else if("icons"in e)gD.set(e.name,e.icons);else throw K.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),bX=o(async(t,e)=>{let r=H_(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=gD.get(n);if(!i){let s=xX.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},gD.set(n,i)}catch(l){throw K.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=j_(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),TX=o(async t=>{try{return await bX(t),!0}catch{return!1}},"isIconAvailable"),eo=o(async(t,e,r)=>{let n;try{n=await bX(t,e?.fallbackPrefix)}catch(s){K.error(s),n=yD}let i=K_(n,e),a=Z_(Q_(i.body),{...i.attributes,...r});return wr(a,Zt())},"getIconSVG")});function Mw(t){for(var e=[],r=1;r{"use strict";o(Mw,"dedent")});var Iw,Bp,wX,Ow=O(()=>{"use strict";Iw=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,Bp=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,wX=/\s*%%.*\n/gm});var yg,xD=O(()=>{"use strict";yg=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var uh,vg,B2,bD,kX,Fp=O(()=>{"use strict";xt();Ow();xD();uh={},vg=o(function(t,e){t=t.replace(Iw,"").replace(Bp,"").replace(wX,` +`);for(let[r,{detector:n}]of Object.entries(uh))if(n(t,e))return r;throw new yg(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),B2=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)bD(e,r,n)},"registerLazyLoadedDiagrams"),bD=o((t,e,r)=>{uh[t]&&K.warn(`Detector with key ${t} already exists. Overwriting.`),uh[t]={detector:e,loader:r},K.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),kX=o(t=>uh[t].loader,"getDiagramLoader")});var F2,EX,TD=O(()=>{"use strict";F2=(function(){var t=o(function(Te,Be,Ue,Ge){for(Ue=Ue||{},Ge=Te.length;Ge--;Ue[Te[Ge]]=Be);return Ue},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],T=[1,35],E=[1,36],w=[1,37],k=[1,38],S=[1,39],A=[1,40],L=[1,41],I=[1,42],N=[1,43],C=[1,44],_=[1,45],D=[1,46],M=[1,47],R=[1,48],P=[1,50],B=[1,51],F=[1,52],G=[1,53],$=[1,54],V=[1,55],X=[1,56],Q=[1,57],H=[1,58],ie=[1,59],Y=[1,60],le=[14,42],ee=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],J=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],te=[1,82],Z=[1,83],xe=[1,84],de=[1,85],Se=[12,14,42],Me=[12,14,33,42],ke=[12,14,33,42,76,77,79,80],we=[12,33],_e=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],$e={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(Be,Ue,Ge,Ne,We,j,ae){var U=j.length-1;switch(We){case 3:Ne.setDirection("TB");break;case 4:Ne.setDirection("BT");break;case 5:Ne.setDirection("RL");break;case 6:Ne.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:Ne.setC4Type(j[U-3]);break;case 19:Ne.setTitle(j[U].substring(6)),this.$=j[U].substring(6);break;case 20:Ne.setAccDescription(j[U].substring(15)),this.$=j[U].substring(15);break;case 21:this.$=j[U].trim(),Ne.setTitle(this.$);break;case 22:case 23:this.$=j[U].trim(),Ne.setAccDescription(this.$);break;case 28:j[U].splice(2,0,"ENTERPRISE"),Ne.addPersonOrSystemBoundary(...j[U]),this.$=j[U];break;case 29:j[U].splice(2,0,"SYSTEM"),Ne.addPersonOrSystemBoundary(...j[U]),this.$=j[U];break;case 30:Ne.addPersonOrSystemBoundary(...j[U]),this.$=j[U];break;case 31:j[U].splice(2,0,"CONTAINER"),Ne.addContainerBoundary(...j[U]),this.$=j[U];break;case 32:Ne.addDeploymentNode("node",...j[U]),this.$=j[U];break;case 33:Ne.addDeploymentNode("nodeL",...j[U]),this.$=j[U];break;case 34:Ne.addDeploymentNode("nodeR",...j[U]),this.$=j[U];break;case 35:Ne.popBoundaryParseStack();break;case 39:Ne.addPersonOrSystem("person",...j[U]),this.$=j[U];break;case 40:Ne.addPersonOrSystem("external_person",...j[U]),this.$=j[U];break;case 41:Ne.addPersonOrSystem("system",...j[U]),this.$=j[U];break;case 42:Ne.addPersonOrSystem("system_db",...j[U]),this.$=j[U];break;case 43:Ne.addPersonOrSystem("system_queue",...j[U]),this.$=j[U];break;case 44:Ne.addPersonOrSystem("external_system",...j[U]),this.$=j[U];break;case 45:Ne.addPersonOrSystem("external_system_db",...j[U]),this.$=j[U];break;case 46:Ne.addPersonOrSystem("external_system_queue",...j[U]),this.$=j[U];break;case 47:Ne.addContainer("container",...j[U]),this.$=j[U];break;case 48:Ne.addContainer("container_db",...j[U]),this.$=j[U];break;case 49:Ne.addContainer("container_queue",...j[U]),this.$=j[U];break;case 50:Ne.addContainer("external_container",...j[U]),this.$=j[U];break;case 51:Ne.addContainer("external_container_db",...j[U]),this.$=j[U];break;case 52:Ne.addContainer("external_container_queue",...j[U]),this.$=j[U];break;case 53:Ne.addComponent("component",...j[U]),this.$=j[U];break;case 54:Ne.addComponent("component_db",...j[U]),this.$=j[U];break;case 55:Ne.addComponent("component_queue",...j[U]),this.$=j[U];break;case 56:Ne.addComponent("external_component",...j[U]),this.$=j[U];break;case 57:Ne.addComponent("external_component_db",...j[U]),this.$=j[U];break;case 58:Ne.addComponent("external_component_queue",...j[U]),this.$=j[U];break;case 60:Ne.addRel("rel",...j[U]),this.$=j[U];break;case 61:Ne.addRel("birel",...j[U]),this.$=j[U];break;case 62:Ne.addRel("rel_u",...j[U]),this.$=j[U];break;case 63:Ne.addRel("rel_d",...j[U]),this.$=j[U];break;case 64:Ne.addRel("rel_l",...j[U]),this.$=j[U];break;case 65:Ne.addRel("rel_r",...j[U]),this.$=j[U];break;case 66:Ne.addRel("rel_b",...j[U]),this.$=j[U];break;case 67:j[U].splice(0,1),Ne.addRel("rel",...j[U]),this.$=j[U];break;case 68:Ne.updateElStyle("update_el_style",...j[U]),this.$=j[U];break;case 69:Ne.updateRelStyle("update_rel_style",...j[U]),this.$=j[U];break;case 70:Ne.updateLayoutConfig("update_layout_config",...j[U]),this.$=j[U];break;case 71:this.$=[j[U]];break;case 72:j[U].unshift(j[U-1]),this.$=j[U];break;case 73:case 75:this.$=j[U].trim();break;case 74:let ce={};ce[j[U-1].trim()]=j[U].trim(),this.$=ce;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{14:[1,74]},t(le,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y}),t(le,[2,14]),t(ee,[2,16],{12:[1,76]}),t(le,[2,36],{12:[1,77]}),t(J,[2,19]),t(J,[2,20]),{25:[1,78]},{27:[1,79]},t(J,[2,23]),{35:80,75:81,76:te,77:Z,79:xe,80:de},{35:86,75:81,76:te,77:Z,79:xe,80:de},{35:87,75:81,76:te,77:Z,79:xe,80:de},{35:88,75:81,76:te,77:Z,79:xe,80:de},{35:89,75:81,76:te,77:Z,79:xe,80:de},{35:90,75:81,76:te,77:Z,79:xe,80:de},{35:91,75:81,76:te,77:Z,79:xe,80:de},{35:92,75:81,76:te,77:Z,79:xe,80:de},{35:93,75:81,76:te,77:Z,79:xe,80:de},{35:94,75:81,76:te,77:Z,79:xe,80:de},{35:95,75:81,76:te,77:Z,79:xe,80:de},{35:96,75:81,76:te,77:Z,79:xe,80:de},{35:97,75:81,76:te,77:Z,79:xe,80:de},{35:98,75:81,76:te,77:Z,79:xe,80:de},{35:99,75:81,76:te,77:Z,79:xe,80:de},{35:100,75:81,76:te,77:Z,79:xe,80:de},{35:101,75:81,76:te,77:Z,79:xe,80:de},{35:102,75:81,76:te,77:Z,79:xe,80:de},{35:103,75:81,76:te,77:Z,79:xe,80:de},{35:104,75:81,76:te,77:Z,79:xe,80:de},t(Se,[2,59]),{35:105,75:81,76:te,77:Z,79:xe,80:de},{35:106,75:81,76:te,77:Z,79:xe,80:de},{35:107,75:81,76:te,77:Z,79:xe,80:de},{35:108,75:81,76:te,77:Z,79:xe,80:de},{35:109,75:81,76:te,77:Z,79:xe,80:de},{35:110,75:81,76:te,77:Z,79:xe,80:de},{35:111,75:81,76:te,77:Z,79:xe,80:de},{35:112,75:81,76:te,77:Z,79:xe,80:de},{35:113,75:81,76:te,77:Z,79:xe,80:de},{35:114,75:81,76:te,77:Z,79:xe,80:de},{35:115,75:81,76:te,77:Z,79:xe,80:de},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{12:[1,118],33:[1,117]},{35:119,75:81,76:te,77:Z,79:xe,80:de},{35:120,75:81,76:te,77:Z,79:xe,80:de},{35:121,75:81,76:te,77:Z,79:xe,80:de},{35:122,75:81,76:te,77:Z,79:xe,80:de},{35:123,75:81,76:te,77:Z,79:xe,80:de},{35:124,75:81,76:te,77:Z,79:xe,80:de},{35:125,75:81,76:te,77:Z,79:xe,80:de},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(le,[2,15]),t(ee,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(le,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y}),t(J,[2,21]),t(J,[2,22]),t(Se,[2,39]),t(Me,[2,71],{75:81,35:132,76:te,77:Z,79:xe,80:de}),t(ke,[2,73]),{78:[1,133]},t(ke,[2,75]),t(ke,[2,76]),t(Se,[2,40]),t(Se,[2,41]),t(Se,[2,42]),t(Se,[2,43]),t(Se,[2,44]),t(Se,[2,45]),t(Se,[2,46]),t(Se,[2,47]),t(Se,[2,48]),t(Se,[2,49]),t(Se,[2,50]),t(Se,[2,51]),t(Se,[2,52]),t(Se,[2,53]),t(Se,[2,54]),t(Se,[2,55]),t(Se,[2,56]),t(Se,[2,57]),t(Se,[2,58]),t(Se,[2,60]),t(Se,[2,61]),t(Se,[2,62]),t(Se,[2,63]),t(Se,[2,64]),t(Se,[2,65]),t(Se,[2,66]),t(Se,[2,67]),t(Se,[2,68]),t(Se,[2,69]),t(Se,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(we,[2,28]),t(we,[2,29]),t(we,[2,30]),t(we,[2,31]),t(we,[2,32]),t(we,[2,33]),t(we,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(ee,[2,18]),t(le,[2,38]),t(Me,[2,72]),t(ke,[2,74]),t(Se,[2,24]),t(Se,[2,35]),t(_e,[2,25]),t(_e,[2,26],{12:[1,138]}),t(_e,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(Be,Ue){if(Ue.recoverable)this.trace(Be);else{var Ge=new Error(Be);throw Ge.hash=Ue,Ge}},"parseError"),parse:o(function(Be){var Ue=this,Ge=[0],Ne=[],We=[null],j=[],ae=this.table,U="",ce=0,z=0,ne=0,se=2,be=1,pe=j.slice.call(arguments,1),me=Object.create(this.lexer),Re={yy:{}};for(var ge in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ge)&&(Re.yy[ge]=this.yy[ge]);me.setInput(Be,Re.yy),Re.yy.lexer=me,Re.yy.parser=this,typeof me.yylloc>"u"&&(me.yylloc={});var Ie=me.yylloc;j.push(Ie);var qe=me.options&&me.options.ranges;typeof Re.yy.parseError=="function"?this.parseError=Re.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pe(dt){Ge.length=Ge.length-2*dt,We.length=We.length-dt,j.length=j.length-dt}o(Pe,"popStack");function Xe(){var dt;return dt=Ne.pop()||me.lex()||be,typeof dt!="number"&&(dt instanceof Array&&(Ne=dt,dt=Ne.pop()),dt=Ue.symbols_[dt]||dt),dt}o(Xe,"lex");for(var oe,et,he,ot,Dt,It,wt={},Rt,it,at,Ct;;){if(he=Ge[Ge.length-1],this.defaultActions[he]?ot=this.defaultActions[he]:((oe===null||typeof oe>"u")&&(oe=Xe()),ot=ae[he]&&ae[he][oe]),typeof ot>"u"||!ot.length||!ot[0]){var yt="";Ct=[];for(Rt in ae[he])this.terminals_[Rt]&&Rt>se&&Ct.push("'"+this.terminals_[Rt]+"'");me.showPosition?yt="Parse error on line "+(ce+1)+`: +`+me.showPosition()+` +Expecting `+Ct.join(", ")+", got '"+(this.terminals_[oe]||oe)+"'":yt="Parse error on line "+(ce+1)+": Unexpected "+(oe==be?"end of input":"'"+(this.terminals_[oe]||oe)+"'"),this.parseError(yt,{text:me.match,token:this.terminals_[oe]||oe,line:me.yylineno,loc:Ie,expected:Ct})}if(ot[0]instanceof Array&&ot.length>1)throw new Error("Parse Error: multiple actions possible at state: "+he+", token: "+oe);switch(ot[0]){case 1:Ge.push(oe),We.push(me.yytext),j.push(me.yylloc),Ge.push(ot[1]),oe=null,et?(oe=et,et=null):(z=me.yyleng,U=me.yytext,ce=me.yylineno,Ie=me.yylloc,ne>0&&ne--);break;case 2:if(it=this.productions_[ot[1]][1],wt.$=We[We.length-it],wt._$={first_line:j[j.length-(it||1)].first_line,last_line:j[j.length-1].last_line,first_column:j[j.length-(it||1)].first_column,last_column:j[j.length-1].last_column},qe&&(wt._$.range=[j[j.length-(it||1)].range[0],j[j.length-1].range[1]]),It=this.performAction.apply(wt,[U,z,ce,Re.yy,ot[1],We,j].concat(pe)),typeof It<"u")return It;it&&(Ge=Ge.slice(0,-1*it*2),We=We.slice(0,-1*it),j=j.slice(0,-1*it)),Ge.push(this.productions_[ot[1]][0]),We.push(wt.$),j.push(wt._$),at=ae[Ge[Ge.length-2]][Ge[Ge.length-1]],Ge.push(at);break;case 3:return!0}}return!0},"parse")},fe=(function(){var Te={EOF:1,parseError:o(function(Ue,Ge){if(this.yy.parser)this.yy.parser.parseError(Ue,Ge);else throw new Error(Ue)},"parseError"),setInput:o(function(Be,Ue){return this.yy=Ue||this.yy||{},this._input=Be,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Be=this._input[0];this.yytext+=Be,this.yyleng++,this.offset++,this.match+=Be,this.matched+=Be;var Ue=Be.match(/(?:\r\n?|\n).*/g);return Ue?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Be},"input"),unput:o(function(Be){var Ue=Be.length,Ge=Be.split(/(?:\r\n?|\n)/g);this._input=Be+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ue),this.offset-=Ue;var Ne=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ge.length-1&&(this.yylineno-=Ge.length-1);var We=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ge?(Ge.length===Ne.length?this.yylloc.first_column:0)+Ne[Ne.length-Ge.length].length-Ge[0].length:this.yylloc.first_column-Ue},this.options.ranges&&(this.yylloc.range=[We[0],We[0]+this.yyleng-Ue]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Be){this.unput(this.match.slice(Be))},"less"),pastInput:o(function(){var Be=this.matched.substr(0,this.matched.length-this.match.length);return(Be.length>20?"...":"")+Be.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Be=this.match;return Be.length<20&&(Be+=this._input.substr(0,20-Be.length)),(Be.substr(0,20)+(Be.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Be=this.pastInput(),Ue=new Array(Be.length+1).join("-");return Be+this.upcomingInput()+` +`+Ue+"^"},"showPosition"),test_match:o(function(Be,Ue){var Ge,Ne,We;if(this.options.backtrack_lexer&&(We={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(We.yylloc.range=this.yylloc.range.slice(0))),Ne=Be[0].match(/(?:\r\n?|\n).*/g),Ne&&(this.yylineno+=Ne.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ne?Ne[Ne.length-1].length-Ne[Ne.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Be[0].length},this.yytext+=Be[0],this.match+=Be[0],this.matches=Be,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Be[0].length),this.matched+=Be[0],Ge=this.performAction.call(this,this.yy,this,Ue,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ge)return Ge;if(this._backtrack){for(var j in We)this[j]=We[j];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Be,Ue,Ge,Ne;this._more||(this.yytext="",this.match="");for(var We=this._currentRules(),j=0;jUe[0].length)){if(Ue=Ge,Ne=j,this.options.backtrack_lexer){if(Be=this.test_match(Ge,We[j]),Be!==!1)return Be;if(this._backtrack){Ue=!1;continue}else return!1}else if(!this.options.flex)break}return Ue?(Be=this.test_match(Ue,We[Ne]),Be!==!1?Be:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ue=this.next();return Ue||this.lex()},"lex"),begin:o(function(Ue){this.conditionStack.push(Ue)},"begin"),popState:o(function(){var Ue=this.conditionStack.length-1;return Ue>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ue){return Ue=this.conditionStack.length-1-Math.abs(Ue||0),Ue>=0?this.conditionStack[Ue]:"INITIAL"},"topState"),pushState:o(function(Ue){this.begin(Ue)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ue,Ge,Ne,We){var j=We;switch(Ne){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[65,66,67,68],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return Te})();$e.lexer=fe;function Ke(){this.yy={}}return o(Ke,"Parser"),Ke.prototype=$e,$e.Parser=Ke,new Ke})();F2.parser=F2;EX=F2});var G8e,V8e,Zr,Kc,Ti=O(()=>{"use strict";xt();G8e=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),V8e=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),Zr=o(function(t,e,r,n){let i=V8e(e,r,n);G8e(t,i)},"configureSvgSize"),Kc=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;K.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;K.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,K.info(`Calculated bounds: ${l}x${u}`),Zr(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var Pw,q8e,SX,CX,wD=O(()=>{"use strict";xt();Pw={},q8e=o((t,e,r)=>{let n="";return t in Pw&&Pw[t]?n=Pw[t](r):K.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + @keyframes edge-animation-frame { + from { + stroke-dashoffset: 0; + } + } + @keyframes dash { + to { + stroke-dashoffset: 0; + } + } + & .edge-animation-slow { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 50s linear infinite; + stroke-linecap: round; + } + & .edge-animation-fast { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 20s linear infinite; + stroke-linecap: round; + } + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${e} +`},"getStyles"),SX=o((t,e)=>{e!==void 0&&(Pw[t]=e)},"addStylesForDiagram"),CX=q8e});var $2={};vr($2,{clear:()=>_r,getAccDescription:()=>Br,getAccTitle:()=>Or,getDiagramTitle:()=>Fr,setAccDescription:()=>Pr,setAccTitle:()=>Lr,setDiagramTitle:()=>zr});var kD,ED,SD,CD,_r,Lr,Or,Pr,Br,zr,Fr,si=O(()=>{"use strict";Ur();$r();kD="",ED="",SD="",CD=o(t=>wr(t,Zt()),"sanitizeText"),_r=o(()=>{kD="",SD="",ED=""},"clear"),Lr=o(t=>{kD=CD(t).replace(/^\s+/g,"")},"setAccTitle"),Or=o(()=>kD,"getAccTitle"),Pr=o(t=>{SD=CD(t).replace(/\n\s+/g,` +`)},"setAccDescription"),Br=o(()=>SD,"getAccDescription"),zr=o(t=>{ED=CD(t)},"setDiagramTitle"),Fr=o(()=>ED,"getDiagramTitle")});var AX,U8e,ve,z2,Fw,G2,_D,W8e,Bw,$p,V2,AD,jt=O(()=>{"use strict";Fp();xt();$r();Ur();Ti();wD();si();AX=K,U8e=h2,ve=Zt,z2=ew,Fw=vf,G2=o(t=>wr(t,ve()),"sanitizeText"),_D=Kc,W8e=o(()=>$2,"getCommonDb"),Bw={},$p=o((t,e,r)=>{Bw[t]&&AX.warn(`Diagram with id ${t} already registered. Overwriting.`),Bw[t]=e,r&&bD(t,r),SX(t,e.styles),e.injectUtils?.(AX,U8e,ve,G2,_D,W8e(),()=>{})},"registerDiagram"),V2=o(t=>{if(t in Bw)return Bw[t];throw new AD(t)},"getDiagram"),AD=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var ec,Ef,As,Jl,Qc,q2,DD,RD,$w,zw,_X,H8e,Y8e,j8e,X8e,K8e,Q8e,Z8e,J8e,eDe,tDe,rDe,nDe,iDe,aDe,sDe,oDe,lDe,DX,cDe,uDe,RX,hDe,fDe,dDe,pDe,Sf,mDe,gDe,yDe,vDe,xDe,U2,LD=O(()=>{"use strict";jt();Ur();si();ec=[],Ef=[""],As="global",Jl="",Qc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],q2=[],DD="",RD=!1,$w=4,zw=2,H8e=o(function(){return _X},"getC4Type"),Y8e=o(function(t){_X=wr(t,ve())},"setC4Type"),j8e=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=q2.find(d=>d.from===e&&d.to===r);if(f?h=f:q2.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=Sf()},"addRel"),X8e=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=ec.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,ec.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=As,l.wrap=Sf()},"addPersonOrSystem"),K8e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ec.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ec.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=Sf(),u.typeC4Shape={text:t},u.parentBoundary=As},"addContainer"),Q8e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ec.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ec.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=Sf(),u.typeC4Shape={text:t},u.parentBoundary=As},"addComponent"),Z8e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=Qc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,Qc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=As,a.wrap=Sf(),Jl=As,As=t,Ef.push(Jl)},"addPersonOrSystemBoundary"),J8e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=Qc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,Qc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=As,a.wrap=Sf(),Jl=As,As=t,Ef.push(Jl)},"addContainerBoundary"),eDe=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=Qc.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,Qc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=As,u.wrap=Sf(),Jl=As,As=e,Ef.push(Jl)},"addDeploymentNode"),tDe=o(function(){As=Jl,Ef.pop(),Jl=Ef.pop(),Ef.push(Jl)},"popBoundaryParseStack"),rDe=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=ec.find(p=>p.alias===e);if(!(d===void 0&&(d=Qc.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),nDe=o(function(t,e,r,n,i,a,s){let l=q2.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),iDe=o(function(t,e,r){let n=$w,i=zw;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&($w=n),i>=1&&(zw=i)},"updateLayoutConfig"),aDe=o(function(){return $w},"getC4ShapeInRow"),sDe=o(function(){return zw},"getC4BoundaryInRow"),oDe=o(function(){return As},"getCurrentBoundaryParse"),lDe=o(function(){return Jl},"getParentBoundaryParse"),DX=o(function(t){return t==null?ec:ec.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),cDe=o(function(t){return ec.find(e=>e.alias===t)},"getC4Shape"),uDe=o(function(t){return Object.keys(DX(t))},"getC4ShapeKeys"),RX=o(function(t){return t==null?Qc:Qc.filter(e=>e.parentBoundary===t)},"getBoundaries"),hDe=RX,fDe=o(function(){return q2},"getRels"),dDe=o(function(){return DD},"getTitle"),pDe=o(function(t){RD=t},"setWrap"),Sf=o(function(){return RD},"autoWrap"),mDe=o(function(){ec=[],Qc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Jl="",As="global",Ef=[""],q2=[],Ef=[""],DD="",RD=!1,$w=4,zw=2},"clear"),gDe={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},yDe={FILLED:0,OPEN:1},vDe={LEFTOF:0,RIGHTOF:1,OVER:2},xDe=o(function(t){DD=wr(t,ve())},"setTitle"),U2={addPersonOrSystem:X8e,addPersonOrSystemBoundary:Z8e,addContainer:K8e,addContainerBoundary:J8e,addComponent:Q8e,addDeploymentNode:eDe,popBoundaryParseStack:tDe,addRel:j8e,updateElStyle:rDe,updateRelStyle:nDe,updateLayoutConfig:iDe,autoWrap:Sf,setWrap:pDe,getC4ShapeArray:DX,getC4Shape:cDe,getC4ShapeKeys:uDe,getBoundaries:RX,getBoundarys:hDe,getCurrentBoundaryParse:oDe,getParentBoundaryParse:lDe,getRels:fDe,getTitle:dDe,getC4Type:H8e,getC4ShapeInRow:aDe,getC4BoundaryInRow:sDe,setAccTitle:Lr,getAccTitle:Or,getAccDescription:Br,setAccDescription:Pr,getConfig:o(()=>ve().c4,"getConfig"),clear:mDe,LINETYPE:gDe,ARROWTYPE:yDe,PLACEMENT:vDe,setTitle:xDe,setC4Type:Y8e}});function zp(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}var ND=O(()=>{"use strict";o(zp,"ascending")});function MD(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}var LX=O(()=>{"use strict";o(MD,"descending")});function Gp(t){let e,r,n;t.length!==2?(e=zp,r=o((l,u)=>zp(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===zp||t===MD?t:bDe,r=t,n=t);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function bDe(){return 0}var ID=O(()=>{"use strict";ND();LX();o(Gp,"bisector");o(bDe,"zero")});function OD(t){return t===null?NaN:+t}var NX=O(()=>{"use strict";o(OD,"number")});var MX,IX,TDe,wDe,PD,OX=O(()=>{"use strict";ND();ID();NX();MX=Gp(zp),IX=MX.right,TDe=MX.left,wDe=Gp(OD).center,PD=IX});function PX({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function kDe({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function EDe({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function SDe(t){return t!==null&&typeof t=="object"?t.valueOf():t}var xg,BX=O(()=>{"use strict";xg=class extends Map{static{o(this,"InternMap")}constructor(e,r=SDe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(PX(this,e))}has(e){return super.has(PX(this,e))}set(e,r){return super.set(kDe(this,e),r)}delete(e){return super.delete(EDe(this,e))}};o(PX,"intern_get");o(kDe,"intern_set");o(EDe,"intern_delete");o(SDe,"keyof")});function Gw(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=CDe?10:a>=ADe?5:a>=_De?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/he&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*he&&--u),u0))return[];if(t===e)return[t];let n=e=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";CDe=Math.sqrt(50),ADe=Math.sqrt(10),_De=Math.sqrt(2);o(Gw,"tickSpec");o(Vw,"ticks");o(W2,"tickIncrement");o(bg,"tickStep")});function qw(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var $X=O(()=>{"use strict";o(qw,"max")});function Uw(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var zX=O(()=>{"use strict";o(Uw,"min")});function Ww(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n{"use strict";o(Ww,"range")});var Cf=O(()=>{"use strict";OX();ID();$X();zX();GX();FX();BX()});function BD(t){return t}var VX=O(()=>{"use strict";o(BD,"default")});function DDe(t){return"translate("+t+",0)"}function RDe(t){return"translate(0,"+t+")"}function LDe(t){return e=>+t(e)}function NDe(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function MDe(){return!this.__axis}function UX(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===Yw||t===Hw?-1:1,f=t===Hw||t===FD?"x":"y",d=t===Yw||t===$D?DDe:RDe;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):BD),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,T=+x[x.length-1]+u,E=(e.bandwidth?NDe:LDe)(e.copy(),u),w=m.selection?m.selection():m,k=w.selectAll(".domain").data([null]),S=w.selectAll(".tick").data(g,e).order(),A=S.exit(),L=S.enter().append("g").attr("class","tick"),I=S.select("line"),N=S.select("text");k=k.merge(k.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),S=S.merge(L),I=I.merge(L.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),N=N.merge(L.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===Yw?"0em":t===$D?"0.71em":"0.32em")),m!==w&&(k=k.transition(m),S=S.transition(m),I=I.transition(m),N=N.transition(m),A=A.transition(m).attr("opacity",qX).attr("transform",function(C){return isFinite(C=E(C))?d(C+u):this.getAttribute("transform")}),L.attr("opacity",qX).attr("transform",function(C){var _=this.parentNode.__axis;return d((_&&isFinite(_=_(C))?_:E(C))+u)})),A.remove(),k.attr("d",t===Hw||t===FD?s?"M"+h*s+","+b+"H"+u+"V"+T+"H"+h*s:"M"+u+","+b+"V"+T:s?"M"+b+","+h*s+"V"+u+"H"+T+"V"+h*s:"M"+b+","+u+"H"+T),S.attr("opacity",1).attr("transform",function(C){return d(E(C)+u)}),I.attr(f+"2",h*a),N.attr(f,h*v).text(y),w.filter(MDe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===FD?"start":t===Hw?"end":"middle"),w.each(function(){this.__axis=E})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function zD(t){return UX(Yw,t)}function GD(t){return UX($D,t)}var Yw,FD,$D,Hw,qX,WX=O(()=>{"use strict";VX();Yw=1,FD=2,$D=3,Hw=4,qX=1e-6;o(DDe,"translateX");o(RDe,"translateY");o(LDe,"number");o(NDe,"center");o(MDe,"entering");o(UX,"axis");o(zD,"axisTop");o(GD,"axisBottom")});var HX=O(()=>{"use strict";WX()});function jX(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function PDe(t,e){for(var r=0,n=t.length,i;r{"use strict";IDe={value:o(()=>{},"value")};o(jX,"dispatch");o(jw,"Dispatch");o(ODe,"parseTypenames");jw.prototype=jX.prototype={constructor:jw,on:o(function(t,e){var r=this._,n=ODe(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";XX()});var Xw,UD,WD=O(()=>{"use strict";Xw="http://www.w3.org/1999/xhtml",UD={svg:"http://www.w3.org/2000/svg",xhtml:Xw,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function Zc(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),UD.hasOwnProperty(e)?{space:UD[e],local:t}:t}var Kw=O(()=>{"use strict";WD();o(Zc,"default")});function BDe(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Xw&&e.documentElement.namespaceURI===Xw?e.createElement(t):e.createElementNS(r,t)}}function FDe(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function H2(t){var e=Zc(t);return(e.local?FDe:BDe)(e)}var HD=O(()=>{"use strict";Kw();WD();o(BDe,"creatorInherit");o(FDe,"creatorFixed");o(H2,"default")});function $De(){}function Af(t){return t==null?$De:function(){return this.querySelector(t)}}var Qw=O(()=>{"use strict";o($De,"none");o(Af,"default")});function YD(t){typeof t!="function"&&(t=Af(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";tc();Qw();o(YD,"default")});function jD(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var QX=O(()=>{"use strict";o(jD,"array")});function zDe(){return[]}function Tg(t){return t==null?zDe:function(){return this.querySelectorAll(t)}}var XD=O(()=>{"use strict";o(zDe,"empty");o(Tg,"default")});function GDe(t){return function(){return jD(t.apply(this,arguments))}}function KD(t){typeof t=="function"?t=GDe(t):t=Tg(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{"use strict";tc();QX();XD();o(GDe,"arrayAll");o(KD,"default")});function wg(t){return function(){return this.matches(t)}}function Zw(t){return function(e){return e.matches(t)}}var Y2=O(()=>{"use strict";o(wg,"default");o(Zw,"childMatcher")});function qDe(t){return function(){return VDe.call(this.children,t)}}function UDe(){return this.firstElementChild}function QD(t){return this.select(t==null?UDe:qDe(typeof t=="function"?t:Zw(t)))}var VDe,JX=O(()=>{"use strict";Y2();VDe=Array.prototype.find;o(qDe,"childFind");o(UDe,"childFirst");o(QD,"default")});function HDe(){return Array.from(this.children)}function YDe(t){return function(){return WDe.call(this.children,t)}}function ZD(t){return this.selectAll(t==null?HDe:YDe(typeof t=="function"?t:Zw(t)))}var WDe,eK=O(()=>{"use strict";Y2();WDe=Array.prototype.filter;o(HDe,"children");o(YDe,"childrenFilter");o(ZD,"default")});function JD(t){typeof t!="function"&&(t=wg(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";tc();Y2();o(JD,"default")});function j2(t){return new Array(t.length)}var eR=O(()=>{"use strict";o(j2,"default")});function tR(){return new Di(this._enter||this._groups.map(j2),this._parents)}function X2(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var rR=O(()=>{"use strict";eR();tc();o(tR,"default");o(X2,"EnterNode");X2.prototype={constructor:X2,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function nR(t){return function(){return t}}var rK=O(()=>{"use strict";o(nR,"default")});function jDe(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s=T&&(T=b+1);!(w=v[T])&&++T{"use strict";tc();rR();rK();o(jDe,"bindIndex");o(XDe,"bindKey");o(KDe,"datum");o(iR,"default");o(QDe,"arraylike")});function aR(){return new Di(this._exit||this._groups.map(j2),this._parents)}var iK=O(()=>{"use strict";eR();tc();o(aR,"default")});function sR(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var aK=O(()=>{"use strict";o(sR,"default")});function oR(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";tc();o(oR,"default")});function lR(){for(var t=this._groups,e=-1,r=t.length;++e=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var oK=O(()=>{"use strict";o(lR,"default")});function cR(t){t||(t=ZDe);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var lK=O(()=>{"use strict";tc();o(cR,"default");o(ZDe,"ascending")});function uR(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var cK=O(()=>{"use strict";o(uR,"default")});function hR(){return Array.from(this)}var uK=O(()=>{"use strict";o(hR,"default")});function fR(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(fR,"default")});function dR(){let t=0;for(let e of this)++t;return t}var fK=O(()=>{"use strict";o(dR,"default")});function pR(){return!this.node()}var dK=O(()=>{"use strict";o(pR,"default")});function mR(t){for(var e=this._groups,r=0,n=e.length;r{"use strict";o(mR,"default")});function JDe(t){return function(){this.removeAttribute(t)}}function eRe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function tRe(t,e){return function(){this.setAttribute(t,e)}}function rRe(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function nRe(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function iRe(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function gR(t,e){var r=Zc(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?eRe:JDe:typeof e=="function"?r.local?iRe:nRe:r.local?rRe:tRe)(r,e))}var mK=O(()=>{"use strict";Kw();o(JDe,"attrRemove");o(eRe,"attrRemoveNS");o(tRe,"attrConstant");o(rRe,"attrConstantNS");o(nRe,"attrFunction");o(iRe,"attrFunctionNS");o(gR,"default")});function K2(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var yR=O(()=>{"use strict";o(K2,"default")});function aRe(t){return function(){this.style.removeProperty(t)}}function sRe(t,e,r){return function(){this.style.setProperty(t,e,r)}}function oRe(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function vR(t,e,r){return arguments.length>1?this.each((e==null?aRe:typeof e=="function"?oRe:sRe)(t,e,r??"")):_f(this.node(),t)}function _f(t,e){return t.style.getPropertyValue(e)||K2(t).getComputedStyle(t,null).getPropertyValue(e)}var xR=O(()=>{"use strict";yR();o(aRe,"styleRemove");o(sRe,"styleConstant");o(oRe,"styleFunction");o(vR,"default");o(_f,"styleValue")});function lRe(t){return function(){delete this[t]}}function cRe(t,e){return function(){this[t]=e}}function uRe(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function bR(t,e){return arguments.length>1?this.each((e==null?lRe:typeof e=="function"?uRe:cRe)(t,e)):this.node()[t]}var gK=O(()=>{"use strict";o(lRe,"propertyRemove");o(cRe,"propertyConstant");o(uRe,"propertyFunction");o(bR,"default")});function yK(t){return t.trim().split(/^|\s+/)}function TR(t){return t.classList||new vK(t)}function vK(t){this._node=t,this._names=yK(t.getAttribute("class")||"")}function xK(t,e){for(var r=TR(t),n=-1,i=e.length;++n{"use strict";o(yK,"classArray");o(TR,"classList");o(vK,"ClassList");vK.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(xK,"classedAdd");o(bK,"classedRemove");o(hRe,"classedTrue");o(fRe,"classedFalse");o(dRe,"classedFunction");o(wR,"default")});function pRe(){this.textContent=""}function mRe(t){return function(){this.textContent=t}}function gRe(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function kR(t){return arguments.length?this.each(t==null?pRe:(typeof t=="function"?gRe:mRe)(t)):this.node().textContent}var wK=O(()=>{"use strict";o(pRe,"textRemove");o(mRe,"textConstant");o(gRe,"textFunction");o(kR,"default")});function yRe(){this.innerHTML=""}function vRe(t){return function(){this.innerHTML=t}}function xRe(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function ER(t){return arguments.length?this.each(t==null?yRe:(typeof t=="function"?xRe:vRe)(t)):this.node().innerHTML}var kK=O(()=>{"use strict";o(yRe,"htmlRemove");o(vRe,"htmlConstant");o(xRe,"htmlFunction");o(ER,"default")});function bRe(){this.nextSibling&&this.parentNode.appendChild(this)}function SR(){return this.each(bRe)}var EK=O(()=>{"use strict";o(bRe,"raise");o(SR,"default")});function TRe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function CR(){return this.each(TRe)}var SK=O(()=>{"use strict";o(TRe,"lower");o(CR,"default")});function AR(t){var e=typeof t=="function"?t:H2(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var CK=O(()=>{"use strict";HD();o(AR,"default")});function wRe(){return null}function _R(t,e){var r=typeof t=="function"?t:H2(t),n=e==null?wRe:typeof e=="function"?e:Af(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var AK=O(()=>{"use strict";HD();Qw();o(wRe,"constantNull");o(_R,"default")});function kRe(){var t=this.parentNode;t&&t.removeChild(this)}function DR(){return this.each(kRe)}var _K=O(()=>{"use strict";o(kRe,"remove");o(DR,"default")});function ERe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function SRe(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function RR(t){return this.select(t?SRe:ERe)}var DK=O(()=>{"use strict";o(ERe,"selection_cloneShallow");o(SRe,"selection_cloneDeep");o(RR,"default")});function LR(t){return arguments.length?this.property("__data__",t):this.node().__data__}var RK=O(()=>{"use strict";o(LR,"default")});function CRe(t){return function(e){t.call(this,e,this.__data__)}}function ARe(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function _Re(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r{"use strict";o(CRe,"contextListener");o(ARe,"parseTypenames");o(_Re,"onRemove");o(DRe,"onAdd");o(NR,"default")});function NK(t,e,r){var n=K2(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function RRe(t,e){return function(){return NK(this,t,e)}}function LRe(t,e){return function(){return NK(this,t,e.apply(this,arguments))}}function MR(t,e){return this.each((typeof e=="function"?LRe:RRe)(t,e))}var MK=O(()=>{"use strict";yR();o(NK,"dispatchEvent");o(RRe,"dispatchConstant");o(LRe,"dispatchFunction");o(MR,"default")});function*IR(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(IR,"default")});function Di(t,e){this._groups=t,this._parents=e}function OK(){return new Di([[document.documentElement]],OR)}function NRe(){return this}var OR,hh,tc=O(()=>{"use strict";KX();ZX();JX();eK();tK();nK();rR();iK();aK();sK();oK();lK();cK();uK();hK();fK();dK();pK();mK();xR();gK();TK();wK();kK();EK();SK();CK();AK();_K();DK();RK();LK();MK();IK();OR=[null];o(Di,"Selection");o(OK,"selection");o(NRe,"selection_selection");Di.prototype=OK.prototype={constructor:Di,select:YD,selectAll:KD,selectChild:QD,selectChildren:ZD,filter:JD,data:iR,enter:tR,exit:aR,join:sR,merge:oR,selection:NRe,order:lR,sort:cR,call:uR,nodes:hR,node:fR,size:dR,empty:pR,each:mR,attr:gR,style:vR,property:bR,classed:wR,text:kR,html:ER,raise:SR,lower:CR,append:AR,insert:_R,remove:DR,clone:RR,datum:LR,on:NR,dispatch:MR,[Symbol.iterator]:IR};hh=OK});function je(t){return typeof t=="string"?new Di([[document.querySelector(t)]],[document.documentElement]):new Di([[t]],OR)}var PK=O(()=>{"use strict";tc();o(je,"default")});var rc=O(()=>{"use strict";Y2();Kw();PK();tc();Qw();XD();xR()});var BK=O(()=>{"use strict"});function Df(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function kg(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var PR=O(()=>{"use strict";o(Df,"default");o(kg,"extend")});function Rf(){}function $K(){return this.rgb().formatHex()}function zRe(){return this.rgb().formatHex8()}function GRe(){return HK(this).formatHsl()}function zK(){return this.rgb().formatRgb()}function ic(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=MRe.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?GK(e):r===3?new Na(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Jw(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Jw(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=IRe.exec(t))?new Na(e[1],e[2],e[3],1):(e=ORe.exec(t))?new Na(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=PRe.exec(t))?Jw(e[1],e[2],e[3],e[4]):(e=BRe.exec(t))?Jw(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=FRe.exec(t))?UK(e[1],e[2]/100,e[3]/100,1):(e=$Re.exec(t))?UK(e[1],e[2]/100,e[3]/100,e[4]):FK.hasOwnProperty(t)?GK(FK[t]):t==="transparent"?new Na(NaN,NaN,NaN,0):null}function GK(t){return new Na(t>>16&255,t>>8&255,t&255,1)}function Jw(t,e,r,n){return n<=0&&(t=e=r=NaN),new Na(t,e,r,n)}function FR(t){return t instanceof Rf||(t=ic(t)),t?(t=t.rgb(),new Na(t.r,t.g,t.b,t.opacity)):new Na}function Sg(t,e,r,n){return arguments.length===1?FR(t):new Na(t,e,r,n??1)}function Na(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function VK(){return`#${Vp(this.r)}${Vp(this.g)}${Vp(this.b)}`}function VRe(){return`#${Vp(this.r)}${Vp(this.g)}${Vp(this.b)}${Vp((isNaN(this.opacity)?1:this.opacity)*255)}`}function qK(){let t=r5(this.opacity);return`${t===1?"rgb(":"rgba("}${qp(this.r)}, ${qp(this.g)}, ${qp(this.b)}${t===1?")":`, ${t})`}`}function r5(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function qp(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Vp(t){return t=qp(t),(t<16?"0":"")+t.toString(16)}function UK(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new nc(t,e,r,n)}function HK(t){if(t instanceof nc)return new nc(t.h,t.s,t.l,t.opacity);if(t instanceof Rf||(t=ic(t)),!t)return new nc;if(t instanceof nc)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r0&&u<1?0:s,new nc(s,l,u,t.opacity)}function YK(t,e,r,n){return arguments.length===1?HK(t):new nc(t,e,r,n??1)}function nc(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function WK(t){return t=(t||0)%360,t<0?t+360:t}function e5(t){return Math.max(0,Math.min(1,t||0))}function BR(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var Q2,t5,Eg,Z2,Jc,MRe,IRe,ORe,PRe,BRe,FRe,$Re,FK,$R=O(()=>{"use strict";PR();o(Rf,"Color");Q2=.7,t5=1/Q2,Eg="\\s*([+-]?\\d+)\\s*",Z2="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Jc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",MRe=/^#([0-9a-f]{3,8})$/,IRe=new RegExp(`^rgb\\(${Eg},${Eg},${Eg}\\)$`),ORe=new RegExp(`^rgb\\(${Jc},${Jc},${Jc}\\)$`),PRe=new RegExp(`^rgba\\(${Eg},${Eg},${Eg},${Z2}\\)$`),BRe=new RegExp(`^rgba\\(${Jc},${Jc},${Jc},${Z2}\\)$`),FRe=new RegExp(`^hsl\\(${Z2},${Jc},${Jc}\\)$`),$Re=new RegExp(`^hsla\\(${Z2},${Jc},${Jc},${Z2}\\)$`),FK={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Df(Rf,ic,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:$K,formatHex:$K,formatHex8:zRe,formatHsl:GRe,formatRgb:zK,toString:zK});o($K,"color_formatHex");o(zRe,"color_formatHex8");o(GRe,"color_formatHsl");o(zK,"color_formatRgb");o(ic,"color");o(GK,"rgbn");o(Jw,"rgba");o(FR,"rgbConvert");o(Sg,"rgb");o(Na,"Rgb");Df(Na,Sg,kg(Rf,{brighter(t){return t=t==null?t5:Math.pow(t5,t),new Na(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Q2:Math.pow(Q2,t),new Na(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Na(qp(this.r),qp(this.g),qp(this.b),r5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:VK,formatHex:VK,formatHex8:VRe,formatRgb:qK,toString:qK}));o(VK,"rgb_formatHex");o(VRe,"rgb_formatHex8");o(qK,"rgb_formatRgb");o(r5,"clampa");o(qp,"clampi");o(Vp,"hex");o(UK,"hsla");o(HK,"hslConvert");o(YK,"hsl");o(nc,"Hsl");Df(nc,YK,kg(Rf,{brighter(t){return t=t==null?t5:Math.pow(t5,t),new nc(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Q2:Math.pow(Q2,t),new nc(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Na(BR(t>=240?t-240:t+120,i,n),BR(t,i,n),BR(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new nc(WK(this.h),e5(this.s),e5(this.l),r5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=r5(this.opacity);return`${t===1?"hsl(":"hsla("}${WK(this.h)}, ${e5(this.s)*100}%, ${e5(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(WK,"clamph");o(e5,"clampt");o(BR,"hsl2rgb")});var jK,XK,KK=O(()=>{"use strict";jK=Math.PI/180,XK=180/Math.PI});function rQ(t){if(t instanceof eu)return new eu(t.l,t.a,t.b,t.opacity);if(t instanceof fh)return nQ(t);t instanceof Na||(t=FR(t));var e=qR(t.r),r=qR(t.g),n=qR(t.b),i=zR((.2225045*e+.7168786*r+.0606169*n)/ZK),a,s;return e===r&&r===n?a=s=i:(a=zR((.4360747*e+.3850649*r+.1430804*n)/QK),s=zR((.0139322*e+.0971045*r+.7141733*n)/JK)),new eu(116*i-16,500*(a-i),200*(i-s),t.opacity)}function UR(t,e,r,n){return arguments.length===1?rQ(t):new eu(t,e,r,n??1)}function eu(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function zR(t){return t>qRe?Math.pow(t,1/3):t/tQ+eQ}function GR(t){return t>Cg?t*t*t:tQ*(t-eQ)}function VR(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function qR(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function URe(t){if(t instanceof fh)return new fh(t.h,t.c,t.l,t.opacity);if(t instanceof eu||(t=rQ(t)),t.a===0&&t.b===0)return new fh(NaN,0{"use strict";PR();$R();KK();n5=18,QK=.96422,ZK=1,JK=.82521,eQ=4/29,Cg=6/29,tQ=3*Cg*Cg,qRe=Cg*Cg*Cg;o(rQ,"labConvert");o(UR,"lab");o(eu,"Lab");Df(eu,UR,kg(Rf,{brighter(t){return new eu(this.l+n5*(t??1),this.a,this.b,this.opacity)},darker(t){return new eu(this.l-n5*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=QK*GR(e),t=ZK*GR(t),r=JK*GR(r),new Na(VR(3.1338561*e-1.6168667*t-.4906146*r),VR(-.9787684*e+1.9161415*t+.033454*r),VR(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(zR,"xyz2lab");o(GR,"lab2xyz");o(VR,"lrgb2rgb");o(qR,"rgb2lrgb");o(URe,"hclConvert");o(J2,"hcl");o(fh,"Hcl");o(nQ,"hcl2lab");Df(fh,J2,kg(Rf,{brighter(t){return new fh(this.h,this.c,this.l+n5*(t??1),this.opacity)},darker(t){return new fh(this.h,this.c,this.l-n5*(t??1),this.opacity)},rgb(){return nQ(this).rgb()}}))});var Ag=O(()=>{"use strict";$R();iQ()});function WR(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function HR(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n{"use strict";o(WR,"basis");o(HR,"default")});function jR(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return WR((r-n/e)*e,i,a,s,l)}}var aQ=O(()=>{"use strict";YR();o(jR,"default")});var _g,XR=O(()=>{"use strict";_g=o(t=>()=>t,"default")});function sQ(t,e){return function(r){return t+r*e}}function WRe(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function oQ(t,e){var r=e-t;return r?sQ(t,r>180||r<-180?r-360*Math.round(r/360):r):_g(isNaN(t)?e:t)}function lQ(t){return(t=+t)==1?dh:function(e,r){return r-e?WRe(e,r,t):_g(isNaN(e)?r:e)}}function dh(t,e){var r=e-t;return r?sQ(t,r):_g(isNaN(t)?e:t)}var KR=O(()=>{"use strict";XR();o(sQ,"linear");o(WRe,"exponential");o(oQ,"hue");o(lQ,"gamma");o(dh,"nogamma")});function cQ(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";Ag();YR();aQ();KR();Up=o((function t(e){var r=lQ(e);function n(i,a){var s=r((i=Sg(i)).r,(a=Sg(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=dh(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n}),"rgbGamma")(1);o(cQ,"rgbSpline");HRe=cQ(HR),YRe=cQ(jR)});function ZR(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i{"use strict";o(ZR,"default");o(uQ,"isNumberArray")});function fQ(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";i5();o(fQ,"genericArray")});function JR(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var pQ=O(()=>{"use strict";o(JR,"default")});function da(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var ex=O(()=>{"use strict";o(da,"default")});function eL(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=Lf(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var mQ=O(()=>{"use strict";i5();o(eL,"default")});function jRe(t){return function(){return t}}function XRe(t){return function(e){return t(e)+""}}function Dg(t,e){var r=rL.lastIndex=tL.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=rL.exec(t))&&(i=tL.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:da(n,i)})),r=tL.lastIndex;return r{"use strict";ex();rL=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tL=new RegExp(rL.source,"g");o(jRe,"zero");o(XRe,"one");o(Dg,"default")});function Lf(t,e){var r=typeof e,n;return e==null||r==="boolean"?_g(e):(r==="number"?da:r==="string"?(n=ic(e))?(e=n,Up):Dg:e instanceof ic?Up:e instanceof Date?JR:uQ(e)?ZR:Array.isArray(e)?fQ:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?eL:da)(t,e)}var i5=O(()=>{"use strict";Ag();QR();dQ();pQ();ex();mQ();nL();XR();hQ();o(Lf,"default")});function a5(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var gQ=O(()=>{"use strict";o(a5,"default")});function o5(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n{"use strict";yQ=180/Math.PI,s5={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(o5,"default")});function xQ(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?s5:o5(e.a,e.b,e.c,e.d,e.e,e.f)}function bQ(t){return t==null?s5:(l5||(l5=document.createElementNS("http://www.w3.org/2000/svg","g")),l5.setAttribute("transform",t),(t=l5.transform.baseVal.consolidate())?(t=t.matrix,o5(t.a,t.b,t.c,t.d,t.e,t.f)):s5)}var l5,TQ=O(()=>{"use strict";vQ();o(xQ,"parseCss");o(bQ,"parseSvg")});function wQ(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:da(h,d)},{i:y-2,x:da(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:da(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:da(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:da(h,d)},{i:y-2,x:da(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";ex();TQ();o(wQ,"interpolateTransform");iL=wQ(xQ,"px, ","px)","deg)"),aL=wQ(bQ,", ",")",")")});function EQ(t){return function(e,r){var n=t((e=J2(e)).h,(r=J2(r)).h),i=dh(e.c,r.c),a=dh(e.l,r.l),s=dh(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var sL,KRe,SQ=O(()=>{"use strict";Ag();KR();o(EQ,"hcl");sL=EQ(oQ),KRe=EQ(dh)});var Rg=O(()=>{"use strict";i5();ex();gQ();nL();kQ();QR();SQ()});function sx(){return Wp||(_Q(QRe),Wp=ix.now()+h5)}function QRe(){Wp=0}function ax(){this._call=this._time=this._next=null}function f5(t,e,r){var n=new ax;return n.restart(t,e,r),n}function DQ(){sx(),++Lg;for(var t=c5,e;t;)(e=Wp-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Lg}function CQ(){Wp=(u5=ix.now())+h5,Lg=rx=0;try{DQ()}finally{Lg=0,JRe(),Wp=0}}function ZRe(){var t=ix.now(),e=t-u5;e>AQ&&(h5-=e,u5=t)}function JRe(){for(var t,e=c5,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:c5=r);nx=t,oL(n)}function oL(t){if(!Lg){rx&&(rx=clearTimeout(rx));var e=t-Wp;e>24?(t<1/0&&(rx=setTimeout(CQ,t-ix.now()-h5)),tx&&(tx=clearInterval(tx))):(tx||(u5=ix.now(),tx=setInterval(ZRe,AQ)),Lg=1,_Q(CQ))}}var Lg,rx,tx,AQ,c5,nx,u5,Wp,h5,ix,_Q,lL=O(()=>{"use strict";Lg=0,rx=0,tx=0,AQ=1e3,u5=0,Wp=0,h5=0,ix=typeof performance=="object"&&performance.now?performance:Date,_Q=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(sx,"now");o(QRe,"clearNow");o(ax,"Timer");ax.prototype=f5.prototype={constructor:ax,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?sx():+r)+(e==null?0:+e),!this._next&&nx!==this&&(nx?nx._next=this:c5=this,nx=this),this._call=t,this._time=r,oL()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,oL())},"stop")};o(f5,"timer");o(DQ,"timerFlush");o(CQ,"wake");o(ZRe,"poke");o(JRe,"nap");o(oL,"sleep")});function ox(t,e,r){var n=new ax;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var RQ=O(()=>{"use strict";lL();o(ox,"default")});var d5=O(()=>{"use strict";lL();RQ()});function ph(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;rLe(t,r,{name:e,index:n,group:i,on:eLe,tween:tLe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:MQ})}function cx(t,e){var r=ta(t,e);if(r.state>MQ)throw new Error("too late; already scheduled");return r}function Ma(t,e){var r=ta(t,e);if(r.state>p5)throw new Error("too late; already running");return r}function ta(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function rLe(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=f5(a,0,r.time);function a(h){r.state=LQ,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==LQ)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===p5)return ox(s);m.state===NQ?(m.state=lx,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f{"use strict";qD();d5();eLe=VD("start","end","cancel","interrupt"),tLe=[],MQ=0,LQ=1,m5=2,p5=3,NQ=4,g5=5,lx=6;o(ph,"default");o(cx,"init");o(Ma,"set");o(ta,"get");o(rLe,"create")});function ux(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>m5&&n.state{"use strict";to();o(ux,"default")});function cL(t){return this.each(function(){ux(this,t)})}var OQ=O(()=>{"use strict";IQ();o(cL,"default")});function nLe(t,e){var r,n;return function(){var i=Ma(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";to();o(nLe,"tweenRemove");o(iLe,"tweenFunction");o(uL,"default");o(Ng,"tweenValue")});function fx(t,e){var r;return(typeof e=="number"?da:e instanceof ic?Up:(r=ic(e))?(e=r,Up):Dg)(t,e)}var hL=O(()=>{"use strict";Ag();Rg();o(fx,"default")});function aLe(t){return function(){this.removeAttribute(t)}}function sLe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function oLe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function lLe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function cLe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function uLe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function fL(t,e){var r=Zc(t),n=r==="transform"?aL:fx;return this.attrTween(t,typeof e=="function"?(r.local?uLe:cLe)(r,n,Ng(this,"attr."+t,e)):e==null?(r.local?sLe:aLe)(r):(r.local?lLe:oLe)(r,n,e))}var PQ=O(()=>{"use strict";Rg();rc();hx();hL();o(aLe,"attrRemove");o(sLe,"attrRemoveNS");o(oLe,"attrConstant");o(lLe,"attrConstantNS");o(cLe,"attrFunction");o(uLe,"attrFunctionNS");o(fL,"default")});function hLe(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function fLe(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function dLe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&fLe(t,a)),r}return o(i,"tween"),i._value=e,i}function pLe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&hLe(t,a)),r}return o(i,"tween"),i._value=e,i}function dL(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=Zc(t);return this.tween(r,(n.local?dLe:pLe)(n,e))}var BQ=O(()=>{"use strict";rc();o(hLe,"attrInterpolate");o(fLe,"attrInterpolateNS");o(dLe,"attrTweenNS");o(pLe,"attrTween");o(dL,"default")});function mLe(t,e){return function(){cx(this,t).delay=+e.apply(this,arguments)}}function gLe(t,e){return e=+e,function(){cx(this,t).delay=e}}function pL(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?mLe:gLe)(e,t)):ta(this.node(),e).delay}var FQ=O(()=>{"use strict";to();o(mLe,"delayFunction");o(gLe,"delayConstant");o(pL,"default")});function yLe(t,e){return function(){Ma(this,t).duration=+e.apply(this,arguments)}}function vLe(t,e){return e=+e,function(){Ma(this,t).duration=e}}function mL(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?yLe:vLe)(e,t)):ta(this.node(),e).duration}var $Q=O(()=>{"use strict";to();o(yLe,"durationFunction");o(vLe,"durationConstant");o(mL,"default")});function xLe(t,e){if(typeof e!="function")throw new Error;return function(){Ma(this,t).ease=e}}function gL(t){var e=this._id;return arguments.length?this.each(xLe(e,t)):ta(this.node(),e).ease}var zQ=O(()=>{"use strict";to();o(xLe,"easeConstant");o(gL,"default")});function bLe(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;Ma(this,t).ease=r}}function yL(t){if(typeof t!="function")throw new Error;return this.each(bLe(this._id,t))}var GQ=O(()=>{"use strict";to();o(bLe,"easeVarying");o(yL,"default")});function vL(t){typeof t!="function"&&(t=wg(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";rc();Hp();o(vL,"default")});function xL(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";Hp();o(xL,"default")});function TLe(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function wLe(t,e,r){var n,i,a=TLe(e)?cx:Ma;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function bL(t,e){var r=this._id;return arguments.length<2?ta(this.node(),r).on.on(t):this.each(wLe(r,t,e))}var UQ=O(()=>{"use strict";to();o(TLe,"start");o(wLe,"onFunction");o(bL,"default")});function kLe(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function TL(){return this.on("end.remove",kLe(this._id))}var WQ=O(()=>{"use strict";o(kLe,"removeFunction");o(TL,"default")});function wL(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Af(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";rc();Hp();to();o(wL,"default")});function kL(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Tg(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";rc();Hp();to();o(kL,"default")});function EL(){return new ELe(this._groups,this._parents)}var ELe,jQ=O(()=>{"use strict";rc();ELe=hh.prototype.constructor;o(EL,"default")});function SLe(t,e){var r,n,i;return function(){var a=_f(this,t),s=(this.style.removeProperty(t),_f(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function XQ(t){return function(){this.style.removeProperty(t)}}function CLe(t,e,r){var n,i=r+"",a;return function(){var s=_f(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function ALe(t,e,r){var n,i,a;return function(){var s=_f(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),_f(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function _Le(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=Ma(this,t),h=u.on,f=u.value[a]==null?l||(l=XQ(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function SL(t,e,r){var n=(t+="")=="transform"?iL:fx;return e==null?this.styleTween(t,SLe(t,n)).on("end.style."+t,XQ(t)):typeof e=="function"?this.styleTween(t,ALe(t,n,Ng(this,"style."+t,e))).each(_Le(this._id,t)):this.styleTween(t,CLe(t,n,e),r).on("end.style."+t,null)}var KQ=O(()=>{"use strict";Rg();rc();to();hx();hL();o(SLe,"styleNull");o(XQ,"styleRemove");o(CLe,"styleConstant");o(ALe,"styleFunction");o(_Le,"styleMaybeRemove");o(SL,"default")});function DLe(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function RLe(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&DLe(t,s,r)),n}return o(a,"tween"),a._value=e,a}function CL(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,RLe(t,e,r??""))}var QQ=O(()=>{"use strict";o(DLe,"styleInterpolate");o(RLe,"styleTween");o(CL,"default")});function LLe(t){return function(){this.textContent=t}}function NLe(t){return function(){var e=t(this);this.textContent=e??""}}function AL(t){return this.tween("text",typeof t=="function"?NLe(Ng(this,"text",t)):LLe(t==null?"":t+""))}var ZQ=O(()=>{"use strict";hx();o(LLe,"textConstant");o(NLe,"textFunction");o(AL,"default")});function MLe(t){return function(e){this.textContent=t.call(this,e)}}function ILe(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&MLe(i)),e}return o(n,"tween"),n._value=t,n}function _L(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,ILe(t))}var JQ=O(()=>{"use strict";o(MLe,"textInterpolate");o(ILe,"textTween");o(_L,"default")});function DL(){for(var t=this._name,e=this._id,r=y5(),n=this._groups,i=n.length,a=0;a{"use strict";Hp();to();o(DL,"default")});function RL(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=Ma(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var tZ=O(()=>{"use strict";to();o(RL,"default")});function _s(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function rZ(t){return hh().transition(t)}function y5(){return++OLe}var OLe,mh,Hp=O(()=>{"use strict";rc();PQ();BQ();FQ();$Q();zQ();GQ();VQ();qQ();UQ();WQ();HQ();YQ();jQ();KQ();QQ();ZQ();JQ();eZ();hx();tZ();OLe=0;o(_s,"Transition");o(rZ,"transition");o(y5,"newId");mh=hh.prototype;_s.prototype=rZ.prototype={constructor:_s,select:wL,selectAll:kL,selectChild:mh.selectChild,selectChildren:mh.selectChildren,filter:vL,merge:xL,selection:EL,transition:DL,call:mh.call,nodes:mh.nodes,node:mh.node,size:mh.size,empty:mh.empty,each:mh.each,on:bL,attr:fL,attrTween:dL,style:SL,styleTween:CL,text:AL,textTween:_L,remove:TL,tween:uL,delay:pL,duration:mL,ease:gL,easeVarying:yL,end:RL,[Symbol.iterator]:mh[Symbol.iterator]}});function v5(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var nZ=O(()=>{"use strict";o(v5,"cubicInOut")});var LL=O(()=>{"use strict";nZ()});function BLe(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function NL(t){var e,r;t instanceof _s?(e=t._id,t=t._name):(e=y5(),(r=PLe).time=sx(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";Hp();to();LL();d5();PLe={time:null,delay:0,duration:250,ease:v5};o(BLe,"inherit");o(NL,"default")});var aZ=O(()=>{"use strict";rc();OQ();iZ();hh.prototype.interrupt=cL;hh.prototype.transition=NL});var x5=O(()=>{"use strict";aZ()});var sZ=O(()=>{"use strict"});var oZ=O(()=>{"use strict"});var lZ=O(()=>{"use strict"});function cZ(t){return[+t[0],+t[1]]}function FLe(t){return[cZ(t[0]),cZ(t[1])]}function ML(t){return{type:t}}var akt,skt,okt,lkt,ckt,ukt,uZ=O(()=>{"use strict";x5();sZ();oZ();lZ();({abs:akt,max:skt,min:okt}=Math);o(cZ,"number1");o(FLe,"number2");lkt={name:"x",handles:["w","e"].map(ML),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},ckt={name:"y",handles:["n","s"].map(ML),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},ukt={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(ML),input:o(function(t){return t==null?null:FLe(t)},"input"),output:o(function(t){return t},"output")};o(ML,"type")});var hZ=O(()=>{"use strict";uZ()});function fZ(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return fZ;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";IL=Math.PI,OL=2*IL,Yp=1e-6,$Le=OL-Yp;o(fZ,"append");o(zLe,"appendRound");jp=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?fZ:zLe(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>Yp)if(!(Math.abs(d*u-h*f)>Yp)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),T=a*Math.tan((IL-Math.acos((y+p-v)/(2*x*b)))/2),E=T/b,w=T/x;Math.abs(E-1)>Yp&&this._append`L${e+E*f},${r+E*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+w*u},${this._y1=r+w*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>Yp||Math.abs(this._y1-f)>Yp)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%OL+OL),p>$Le?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>Yp&&this._append`A${n},${n},0,${+(p>=IL)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(dZ,"path");dZ.prototype=jp.prototype});var PL=O(()=>{"use strict";pZ()});var mZ=O(()=>{"use strict"});var gZ=O(()=>{"use strict"});var yZ=O(()=>{"use strict"});var vZ=O(()=>{"use strict"});var xZ=O(()=>{"use strict"});var bZ=O(()=>{"use strict"});var TZ=O(()=>{"use strict"});function BL(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Xp(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var dx=O(()=>{"use strict";o(BL,"default");o(Xp,"formatDecimalParts")});function ac(t){return t=Xp(Math.abs(t)),t?t[1]:NaN}var px=O(()=>{"use strict";dx();o(ac,"default")});function FL(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var wZ=O(()=>{"use strict";o(FL,"default")});function $L(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var kZ=O(()=>{"use strict";o($L,"default")});function Nf(t){if(!(e=GLe.exec(t)))throw new Error("invalid format: "+t);var e;return new b5({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function b5(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var GLe,zL=O(()=>{"use strict";GLe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Nf,"formatSpecifier");Nf.prototype=b5.prototype;o(b5,"FormatSpecifier");b5.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function GL(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var EZ=O(()=>{"use strict";o(GL,"default")});function qL(t,e){var r=Xp(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(VL=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Xp(t,Math.max(0,e+a-1))[0]}var VL,UL=O(()=>{"use strict";dx();o(qL,"default")});function T5(t,e){var r=Xp(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var SZ=O(()=>{"use strict";dx();o(T5,"default")});var WL,CZ=O(()=>{"use strict";dx();UL();SZ();WL={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:BL,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>T5(t*100,e),"p"),r:T5,s:qL,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function w5(t){return t}var AZ=O(()=>{"use strict";o(w5,"default")});function HL(t){var e=t.grouping===void 0||t.thousands===void 0?w5:FL(_Z.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?w5:$L(_Z.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=Nf(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,T=d.precision,E=d.trim,w=d.type;w==="n"?(b=!0,w="g"):WL[w]||(T===void 0&&(T=12),E=!0,w="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var k=y==="$"?r:y==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",S=y==="$"?n:/[%p]/.test(w)?s:"",A=WL[w],L=/[defgprs%]/.test(w);T=T===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,T)):Math.max(0,Math.min(20,T));function I(N){var C=k,_=S,D,M,R;if(w==="c")_=A(N)+_,N="";else{N=+N;var P=N<0||1/N<0;if(N=isNaN(N)?u:A(Math.abs(N),T),E&&(N=GL(N)),P&&+N==0&&g!=="+"&&(P=!1),C=(P?g==="("?g:l:g==="-"||g==="("?"":g)+C,_=(w==="s"?DZ[8+VL/3]:"")+_+(P&&g==="("?")":""),L){for(D=-1,M=N.length;++DR||R>57){_=(R===46?i+N.slice(D+1):N.slice(D))+_,N=N.slice(0,D);break}}}b&&!v&&(N=e(N,1/0));var B=C.length+N.length+_.length,F=B>1)+C+N+_+F.slice(B);break;default:N=F+C+N+_;break}return a(N)}return o(I,"format"),I.toString=function(){return d+""},I}o(h,"newFormat");function f(d,p){var m=h((d=Nf(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(ac(p)/3)))*3,y=Math.pow(10,-g),v=DZ[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var _Z,DZ,RZ=O(()=>{"use strict";px();wZ();kZ();zL();EZ();CZ();UL();AZ();_Z=Array.prototype.map,DZ=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(HL,"default")});function YL(t){return k5=HL(t),tu=k5.format,E5=k5.formatPrefix,k5}var k5,tu,E5,LZ=O(()=>{"use strict";RZ();YL({thousands:",",grouping:[3],currency:["$",""]});o(YL,"defaultLocale")});function S5(t){return Math.max(0,-ac(Math.abs(t)))}var NZ=O(()=>{"use strict";px();o(S5,"default")});function C5(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ac(e)/3)))*3-ac(Math.abs(t)))}var MZ=O(()=>{"use strict";px();o(C5,"default")});function A5(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ac(e)-ac(t))+1}var IZ=O(()=>{"use strict";px();o(A5,"default")});var jL=O(()=>{"use strict";LZ();zL();NZ();MZ();IZ()});var OZ=O(()=>{"use strict"});function VLe(t){var e=0,r=t.children,n=r&&r.length;if(!n)e=1;else for(;--n>=0;)e+=r[n].value;t.value=e}function XL(){return this.eachAfter(VLe)}var PZ=O(()=>{"use strict";o(VLe,"count");o(XL,"default")});function KL(t,e){let r=-1;for(let n of this)t.call(e,n,++r,this);return this}var BZ=O(()=>{"use strict";o(KL,"default")});function QL(t,e){for(var r=this,n=[r],i,a,s=-1;r=n.pop();)if(t.call(e,r,++s,this),i=r.children)for(a=i.length-1;a>=0;--a)n.push(i[a]);return this}var FZ=O(()=>{"use strict";o(QL,"default")});function ZL(t,e){for(var r=this,n=[r],i=[],a,s,l,u=-1;r=n.pop();)if(i.push(r),a=r.children)for(s=0,l=a.length;s{"use strict";o(ZL,"default")});function JL(t,e){let r=-1;for(let n of this)if(t.call(e,n,++r,this))return n}var zZ=O(()=>{"use strict";o(JL,"default")});function e9(t){return this.eachAfter(function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r})}var GZ=O(()=>{"use strict";o(e9,"default")});function t9(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}var VZ=O(()=>{"use strict";o(t9,"default")});function r9(t){for(var e=this,r=qLe(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n}function qLe(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}var qZ=O(()=>{"use strict";o(r9,"default");o(qLe,"leastCommonAncestor")});function n9(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}var UZ=O(()=>{"use strict";o(n9,"default")});function i9(){return Array.from(this)}var WZ=O(()=>{"use strict";o(i9,"default")});function a9(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}var HZ=O(()=>{"use strict";o(a9,"default")});function s9(){var t=this,e=[];return t.each(function(r){r!==t&&e.push({source:r.parent,target:r})}),e}var YZ=O(()=>{"use strict";o(s9,"default")});function*o9(){var t=this,e,r=[t],n,i,a;do for(e=r.reverse(),r=[];t=e.pop();)if(yield t,n=t.children)for(i=0,a=n.length;i{"use strict";o(o9,"default")});function Mg(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=HLe)):e===void 0&&(e=WLe);for(var r=new mx(t),n,i=[r],a,s,l,u;n=i.pop();)if((s=e(n.data))&&(u=(s=Array.from(s)).length))for(n.children=s,l=u-1;l>=0;--l)i.push(a=s[l]=new mx(s[l])),a.parent=n,a.depth=n.depth+1;return r.eachBefore(jLe)}function ULe(){return Mg(this).eachBefore(YLe)}function WLe(t){return t.children}function HLe(t){return Array.isArray(t)?t[1]:null}function YLe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function jLe(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function mx(t){this.data=t,this.depth=this.height=0,this.parent=null}var XZ=O(()=>{"use strict";PZ();BZ();FZ();$Z();zZ();GZ();VZ();qZ();UZ();WZ();HZ();YZ();jZ();o(Mg,"hierarchy");o(ULe,"node_copy");o(WLe,"objectChildren");o(HLe,"mapChildren");o(YLe,"copyData");o(jLe,"computeHeight");o(mx,"Node");mx.prototype=Mg.prototype={constructor:mx,count:XL,each:KL,eachAfter:ZL,eachBefore:QL,find:JL,sum:e9,sort:t9,path:r9,ancestors:n9,descendants:i9,leaves:a9,links:s9,copy:ULe,[Symbol.iterator]:o9}});function KZ(t){if(typeof t!="function")throw new Error;return t}var QZ=O(()=>{"use strict";o(KZ,"required")});function Ig(){return 0}function Kp(t){return function(){return t}}var ZZ=O(()=>{"use strict";o(Ig,"constantZero");o(Kp,"default")});function l9(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}var JZ=O(()=>{"use strict";o(l9,"default")});function c9(t,e,r,n,i){for(var a=t.children,s,l=-1,u=a.length,h=t.value&&(n-e)/t.value;++l{"use strict";o(c9,"default")});function u9(t,e,r,n,i){for(var a=t.children,s,l=-1,u=a.length,h=t.value&&(i-r)/t.value;++l{"use strict";o(u9,"default")});function KLe(t,e,r,n,i,a){for(var s=[],l=e.children,u,h,f=0,d=0,p=l.length,m,g,y=e.value,v,x,b,T,E,w,k;fb&&(b=h),k=v*v*w,T=Math.max(b/k,k/x),T>E){v-=h;break}E=T}s.push(u={value:v,dice:m{"use strict";eJ();tJ();XLe=(1+Math.sqrt(5))/2;o(KLe,"squarifyRatio");rJ=o((function t(e){function r(n,i,a,s,l){KLe(e,n,i,a,s,l)}return o(r,"squarify"),r.ratio=function(n){return t((n=+n)>1?n:1)},r}),"custom")(XLe)});function _5(){var t=rJ,e=!1,r=1,n=1,i=[0],a=Ig,s=Ig,l=Ig,u=Ig,h=Ig;function f(p){return p.x0=p.y0=0,p.x1=r,p.y1=n,p.eachBefore(d),i=[0],e&&p.eachBefore(l9),p}o(f,"treemap");function d(p){var m=i[p.depth],g=p.x0+m,y=p.y0+m,v=p.x1-m,x=p.y1-m;v{"use strict";JZ();nJ();QZ();ZZ();o(_5,"default")});var aJ=O(()=>{"use strict";XZ();iJ()});var sJ=O(()=>{"use strict"});var oJ=O(()=>{"use strict"});function Mf(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var gx=O(()=>{"use strict";o(Mf,"initRange")});function Fo(){var t=new xg,e=[],r=[],n=h9;function i(a){let s=t.get(a);if(s===void 0){if(n!==h9)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new xg;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Fo(e,r).unknown(n)},Mf.apply(i,arguments),i}var h9,f9=O(()=>{"use strict";Cf();gx();h9=Symbol("implicit");o(Fo,"ordinal")});function Og(){var t=Fo().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i{"use strict";Cf();gx();f9();o(Og,"band")});function d9(t){return function(){return t}}var cJ=O(()=>{"use strict";o(d9,"constants")});function p9(t){return+t}var uJ=O(()=>{"use strict";o(p9,"number")});function Pg(t){return t}function m9(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:d9(isNaN(e)?NaN:.5)}function QLe(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function ZLe(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?JLe:ZLe,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),da)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,p9),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=a5,f()},d.clamp=function(p){return arguments.length?(s=p?!0:Pg,f()):s!==Pg},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function yx(){return e9e()(Pg,Pg)}var hJ,g9=O(()=>{"use strict";Cf();Rg();cJ();uJ();hJ=[0,1];o(Pg,"identity");o(m9,"normalize");o(QLe,"clamper");o(ZLe,"bimap");o(JLe,"polymap");o(D5,"copy");o(e9e,"transformer");o(yx,"continuous")});function y9(t,e,r,n){var i=bg(t,e,r),a;switch(n=Nf(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=C5(i,s))&&(n.precision=a),E5(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=A5(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=S5(i))&&(n.precision=a-(n.type==="%")*2);break}}return tu(n)}var fJ=O(()=>{"use strict";Cf();jL();o(y9,"tickFormat")});function t9e(t){var e=t.domain;return t.ticks=function(r){var n=e();return Vw(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return y9(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=W2(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function sc(){var t=yx();return t.copy=function(){return D5(t,sc())},Mf.apply(t,arguments),t9e(t)}var dJ=O(()=>{"use strict";Cf();g9();gx();fJ();o(t9e,"linearish");o(sc,"linear")});function v9(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a{"use strict";o(v9,"nice")});function In(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(hIn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(x9.setTime(+a),b9.setTime(+s),t(x9),t(b9),Math.floor(r(x9,b9))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var x9,b9,gh=O(()=>{"use strict";x9=new Date,b9=new Date;o(In,"timeInterval")});var ru,mJ,T9=O(()=>{"use strict";gh();ru=In(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ru.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?In(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):ru);mJ=ru.range});var $o,gJ,w9=O(()=>{"use strict";gh();$o=In(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),gJ=$o.range});var yh,r9e,R5,n9e,k9=O(()=>{"use strict";gh();yh=In(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),r9e=yh.range,R5=In(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),n9e=R5.range});var vh,i9e,L5,a9e,E9=O(()=>{"use strict";gh();vh=In(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),i9e=vh.range,L5=In(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),a9e=L5.range});var gl,s9e,xx,o9e,N5,l9e,S9=O(()=>{"use strict";gh();gl=In(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),s9e=gl.range,xx=In(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),o9e=xx.range,N5=In(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),l9e=N5.range});function Jp(t){return In(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function e0(t){return In(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var oc,If,M5,I5,iu,O5,P5,vJ,c9e,u9e,h9e,f9e,d9e,p9e,t0,Bg,xJ,bJ,Of,TJ,wJ,kJ,m9e,g9e,y9e,v9e,x9e,b9e,C9=O(()=>{"use strict";gh();o(Jp,"timeWeekday");oc=Jp(0),If=Jp(1),M5=Jp(2),I5=Jp(3),iu=Jp(4),O5=Jp(5),P5=Jp(6),vJ=oc.range,c9e=If.range,u9e=M5.range,h9e=I5.range,f9e=iu.range,d9e=O5.range,p9e=P5.range;o(e0,"utcWeekday");t0=e0(0),Bg=e0(1),xJ=e0(2),bJ=e0(3),Of=e0(4),TJ=e0(5),wJ=e0(6),kJ=t0.range,m9e=Bg.range,g9e=xJ.range,y9e=bJ.range,v9e=Of.range,x9e=TJ.range,b9e=wJ.range});var xh,T9e,B5,w9e,A9=O(()=>{"use strict";gh();xh=In(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),T9e=xh.range,B5=In(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),w9e=B5.range});var zo,k9e,lc,E9e,_9=O(()=>{"use strict";gh();zo=In(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());zo.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:In(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});k9e=zo.range,lc=In(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());lc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:In(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});E9e=lc.range});function SJ(t,e,r,n,i,a){let s=[[$o,1,1e3],[$o,5,5*1e3],[$o,15,15*1e3],[$o,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return t.every(bg(h/31536e6,f/31536e6,d));if(m===0)return ru.every(Math.max(bg(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";Cf();T9();w9();k9();E9();S9();C9();A9();_9();o(SJ,"ticker");[C9e,A9e]=SJ(lc,B5,t0,N5,L5,R5),[D9,R9]=SJ(zo,xh,oc,gl,vh,yh)});var F5=O(()=>{"use strict";T9();w9();k9();E9();S9();C9();A9();_9();CJ()});function L9(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function N9(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function bx(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function M9(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=Tx(i),f=wx(i),d=Tx(a),p=wx(a),m=Tx(s),g=wx(s),y=Tx(l),v=wx(l),x=Tx(u),b=wx(u),T={a:P,A:B,b:F,B:G,c:null,d:NJ,e:NJ,f:K9e,g:sNe,G:lNe,H:Y9e,I:j9e,j:X9e,L:BJ,m:Q9e,M:Z9e,p:$,q:V,Q:OJ,s:PJ,S:J9e,u:eNe,U:tNe,V:rNe,w:nNe,W:iNe,x:null,X:null,y:aNe,Y:oNe,Z:cNe,"%":IJ},E={a:X,A:Q,b:H,B:ie,c:null,d:MJ,e:MJ,f:dNe,g:kNe,G:SNe,H:uNe,I:hNe,j:fNe,L:$J,m:pNe,M:mNe,p:Y,q:le,Q:OJ,s:PJ,S:gNe,u:yNe,U:vNe,V:xNe,w:bNe,W:TNe,x:null,X:null,y:wNe,Y:ENe,Z:CNe,"%":IJ},w={a:I,A:N,b:C,B:_,c:D,d:RJ,e:RJ,f:q9e,g:DJ,G:_J,H:LJ,I:LJ,j:$9e,L:V9e,m:F9e,M:z9e,p:L,q:B9e,Q:W9e,s:H9e,S:G9e,u:N9e,U:M9e,V:I9e,w:L9e,W:O9e,x:M,X:R,y:DJ,Y:_J,Z:P9e,"%":U9e};T.x=k(r,T),T.X=k(n,T),T.c=k(e,T),E.x=k(r,E),E.X=k(n,E),E.c=k(e,E);function k(ee,J){return function(te){var Z=[],xe=-1,de=0,Se=ee.length,Me,ke,we;for(te instanceof Date||(te=new Date(+te));++xe53)return null;"w"in Z||(Z.w=1),"Z"in Z?(de=N9(bx(Z.y,0,1)),Se=de.getUTCDay(),de=Se>4||Se===0?Bg.ceil(de):Bg(de),de=xx.offset(de,(Z.V-1)*7),Z.y=de.getUTCFullYear(),Z.m=de.getUTCMonth(),Z.d=de.getUTCDate()+(Z.w+6)%7):(de=L9(bx(Z.y,0,1)),Se=de.getDay(),de=Se>4||Se===0?If.ceil(de):If(de),de=gl.offset(de,(Z.V-1)*7),Z.y=de.getFullYear(),Z.m=de.getMonth(),Z.d=de.getDate()+(Z.w+6)%7)}else("W"in Z||"U"in Z)&&("w"in Z||(Z.w="u"in Z?Z.u%7:"W"in Z?1:0),Se="Z"in Z?N9(bx(Z.y,0,1)).getUTCDay():L9(bx(Z.y,0,1)).getDay(),Z.m=0,Z.d="W"in Z?(Z.w+6)%7+Z.W*7-(Se+5)%7:Z.w+Z.U*7-(Se+6)%7);return"Z"in Z?(Z.H+=Z.Z/100|0,Z.M+=Z.Z%100,N9(Z)):L9(Z)}}o(S,"newParse");function A(ee,J,te,Z){for(var xe=0,de=J.length,Se=te.length,Me,ke;xe=Se)return-1;if(Me=J.charCodeAt(xe++),Me===37){if(Me=J.charAt(xe++),ke=w[Me in AJ?J.charAt(xe++):Me],!ke||(Z=ke(ee,te,Z))<0)return-1}else if(Me!=te.charCodeAt(Z++))return-1}return Z}o(A,"parseSpecifier");function L(ee,J,te){var Z=h.exec(J.slice(te));return Z?(ee.p=f.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(L,"parsePeriod");function I(ee,J,te){var Z=m.exec(J.slice(te));return Z?(ee.w=g.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(I,"parseShortWeekday");function N(ee,J,te){var Z=d.exec(J.slice(te));return Z?(ee.w=p.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(N,"parseWeekday");function C(ee,J,te){var Z=x.exec(J.slice(te));return Z?(ee.m=b.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(C,"parseShortMonth");function _(ee,J,te){var Z=y.exec(J.slice(te));return Z?(ee.m=v.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(_,"parseMonth");function D(ee,J,te){return A(ee,e,J,te)}o(D,"parseLocaleDateTime");function M(ee,J,te){return A(ee,r,J,te)}o(M,"parseLocaleDate");function R(ee,J,te){return A(ee,n,J,te)}o(R,"parseLocaleTime");function P(ee){return s[ee.getDay()]}o(P,"formatShortWeekday");function B(ee){return a[ee.getDay()]}o(B,"formatWeekday");function F(ee){return u[ee.getMonth()]}o(F,"formatShortMonth");function G(ee){return l[ee.getMonth()]}o(G,"formatMonth");function $(ee){return i[+(ee.getHours()>=12)]}o($,"formatPeriod");function V(ee){return 1+~~(ee.getMonth()/3)}o(V,"formatQuarter");function X(ee){return s[ee.getUTCDay()]}o(X,"formatUTCShortWeekday");function Q(ee){return a[ee.getUTCDay()]}o(Q,"formatUTCWeekday");function H(ee){return u[ee.getUTCMonth()]}o(H,"formatUTCShortMonth");function ie(ee){return l[ee.getUTCMonth()]}o(ie,"formatUTCMonth");function Y(ee){return i[+(ee.getUTCHours()>=12)]}o(Y,"formatUTCPeriod");function le(ee){return 1+~~(ee.getUTCMonth()/3)}return o(le,"formatUTCQuarter"),{format:o(function(ee){var J=k(ee+="",T);return J.toString=function(){return ee},J},"format"),parse:o(function(ee){var J=S(ee+="",!1);return J.toString=function(){return ee},J},"parse"),utcFormat:o(function(ee){var J=k(ee+="",E);return J.toString=function(){return ee},J},"utcFormat"),utcParse:o(function(ee){var J=S(ee+="",!0);return J.toString=function(){return ee},J},"utcParse")}}function hn(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function L9e(t,e,r){var n=pa.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function N9e(t,e,r){var n=pa.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function M9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function I9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function O9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function _J(t,e,r){var n=pa.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function DJ(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function P9e(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function B9e(t,e,r){var n=pa.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function F9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function RJ(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $9e(t,e,r){var n=pa.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function LJ(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function z9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function G9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function V9e(t,e,r){var n=pa.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function q9e(t,e,r){var n=pa.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function U9e(t,e,r){var n=_9e.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function W9e(t,e,r){var n=pa.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function H9e(t,e,r){var n=pa.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function NJ(t,e){return hn(t.getDate(),e,2)}function Y9e(t,e){return hn(t.getHours(),e,2)}function j9e(t,e){return hn(t.getHours()%12||12,e,2)}function X9e(t,e){return hn(1+gl.count(zo(t),t),e,3)}function BJ(t,e){return hn(t.getMilliseconds(),e,3)}function K9e(t,e){return BJ(t,e)+"000"}function Q9e(t,e){return hn(t.getMonth()+1,e,2)}function Z9e(t,e){return hn(t.getMinutes(),e,2)}function J9e(t,e){return hn(t.getSeconds(),e,2)}function eNe(t){var e=t.getDay();return e===0?7:e}function tNe(t,e){return hn(oc.count(zo(t)-1,t),e,2)}function FJ(t){var e=t.getDay();return e>=4||e===0?iu(t):iu.ceil(t)}function rNe(t,e){return t=FJ(t),hn(iu.count(zo(t),t)+(zo(t).getDay()===4),e,2)}function nNe(t){return t.getDay()}function iNe(t,e){return hn(If.count(zo(t)-1,t),e,2)}function aNe(t,e){return hn(t.getFullYear()%100,e,2)}function sNe(t,e){return t=FJ(t),hn(t.getFullYear()%100,e,2)}function oNe(t,e){return hn(t.getFullYear()%1e4,e,4)}function lNe(t,e){var r=t.getDay();return t=r>=4||r===0?iu(t):iu.ceil(t),hn(t.getFullYear()%1e4,e,4)}function cNe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+hn(e/60|0,"0",2)+hn(e%60,"0",2)}function MJ(t,e){return hn(t.getUTCDate(),e,2)}function uNe(t,e){return hn(t.getUTCHours(),e,2)}function hNe(t,e){return hn(t.getUTCHours()%12||12,e,2)}function fNe(t,e){return hn(1+xx.count(lc(t),t),e,3)}function $J(t,e){return hn(t.getUTCMilliseconds(),e,3)}function dNe(t,e){return $J(t,e)+"000"}function pNe(t,e){return hn(t.getUTCMonth()+1,e,2)}function mNe(t,e){return hn(t.getUTCMinutes(),e,2)}function gNe(t,e){return hn(t.getUTCSeconds(),e,2)}function yNe(t){var e=t.getUTCDay();return e===0?7:e}function vNe(t,e){return hn(t0.count(lc(t)-1,t),e,2)}function zJ(t){var e=t.getUTCDay();return e>=4||e===0?Of(t):Of.ceil(t)}function xNe(t,e){return t=zJ(t),hn(Of.count(lc(t),t)+(lc(t).getUTCDay()===4),e,2)}function bNe(t){return t.getUTCDay()}function TNe(t,e){return hn(Bg.count(lc(t)-1,t),e,2)}function wNe(t,e){return hn(t.getUTCFullYear()%100,e,2)}function kNe(t,e){return t=zJ(t),hn(t.getUTCFullYear()%100,e,2)}function ENe(t,e){return hn(t.getUTCFullYear()%1e4,e,4)}function SNe(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Of(t):Of.ceil(t),hn(t.getUTCFullYear()%1e4,e,4)}function CNe(){return"+0000"}function IJ(){return"%"}function OJ(t){return+t}function PJ(t){return Math.floor(+t/1e3)}var AJ,pa,_9e,D9e,GJ=O(()=>{"use strict";F5();o(L9,"localDate");o(N9,"utcDate");o(bx,"newDate");o(M9,"formatLocale");AJ={"-":"",_:" ",0:"0"},pa=/^\s*\d+/,_9e=/^%/,D9e=/[\\^$*+?|[\]().{}]/g;o(hn,"pad");o(R9e,"requote");o(Tx,"formatRe");o(wx,"formatLookup");o(L9e,"parseWeekdayNumberSunday");o(N9e,"parseWeekdayNumberMonday");o(M9e,"parseWeekNumberSunday");o(I9e,"parseWeekNumberISO");o(O9e,"parseWeekNumberMonday");o(_J,"parseFullYear");o(DJ,"parseYear");o(P9e,"parseZone");o(B9e,"parseQuarter");o(F9e,"parseMonthNumber");o(RJ,"parseDayOfMonth");o($9e,"parseDayOfYear");o(LJ,"parseHour24");o(z9e,"parseMinutes");o(G9e,"parseSeconds");o(V9e,"parseMilliseconds");o(q9e,"parseMicroseconds");o(U9e,"parseLiteralPercent");o(W9e,"parseUnixTimestamp");o(H9e,"parseUnixTimestampSeconds");o(NJ,"formatDayOfMonth");o(Y9e,"formatHour24");o(j9e,"formatHour12");o(X9e,"formatDayOfYear");o(BJ,"formatMilliseconds");o(K9e,"formatMicroseconds");o(Q9e,"formatMonthNumber");o(Z9e,"formatMinutes");o(J9e,"formatSeconds");o(eNe,"formatWeekdayNumberMonday");o(tNe,"formatWeekNumberSunday");o(FJ,"dISO");o(rNe,"formatWeekNumberISO");o(nNe,"formatWeekdayNumberSunday");o(iNe,"formatWeekNumberMonday");o(aNe,"formatYear");o(sNe,"formatYearISO");o(oNe,"formatFullYear");o(lNe,"formatFullYearISO");o(cNe,"formatZone");o(MJ,"formatUTCDayOfMonth");o(uNe,"formatUTCHour24");o(hNe,"formatUTCHour12");o(fNe,"formatUTCDayOfYear");o($J,"formatUTCMilliseconds");o(dNe,"formatUTCMicroseconds");o(pNe,"formatUTCMonthNumber");o(mNe,"formatUTCMinutes");o(gNe,"formatUTCSeconds");o(yNe,"formatUTCWeekdayNumberMonday");o(vNe,"formatUTCWeekNumberSunday");o(zJ,"UTCdISO");o(xNe,"formatUTCWeekNumberISO");o(bNe,"formatUTCWeekdayNumberSunday");o(TNe,"formatUTCWeekNumberMonday");o(wNe,"formatUTCYear");o(kNe,"formatUTCYearISO");o(ENe,"formatUTCFullYear");o(SNe,"formatUTCFullYearISO");o(CNe,"formatUTCZone");o(IJ,"formatLiteralPercent");o(OJ,"formatUnixTimestamp");o(PJ,"formatUnixTimestampSeconds")});function I9(t){return Fg=M9(t),r0=Fg.format,VJ=Fg.parse,qJ=Fg.utcFormat,UJ=Fg.utcParse,Fg}var Fg,r0,VJ,qJ,UJ,WJ=O(()=>{"use strict";GJ();I9({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(I9,"defaultLocale")});var O9=O(()=>{"use strict";WJ()});function ANe(t){return new Date(t)}function _Ne(t){return t instanceof Date?+t:+new Date(+t)}function HJ(t,e,r,n,i,a,s,l,u,h){var f=yx(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),T=h("%B"),E=h("%Y");function w(k){return(u(k){"use strict";F5();O9();g9();gx();pJ();o(ANe,"date");o(_Ne,"number");o(HJ,"calendar");o($5,"time")});var jJ=O(()=>{"use strict";lJ();dJ();f9();YJ()});function P9(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{"use strict";o(P9,"default")});var B9,KJ=O(()=>{"use strict";XJ();B9=P9("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var QJ=O(()=>{"use strict";KJ()});function ei(t){return o(function(){return t},"constant")}var z5=O(()=>{"use strict";o(ei,"default")});function JJ(t){return t>1?0:t<-1?$g:Math.acos(t)}function $9(t){return t>=1?kx:t<=-1?-kx:Math.asin(t)}var F9,Ia,Pf,ZJ,G5,cc,n0,ma,$g,kx,zg,V5=O(()=>{"use strict";F9=Math.abs,Ia=Math.atan2,Pf=Math.cos,ZJ=Math.max,G5=Math.min,cc=Math.sin,n0=Math.sqrt,ma=1e-12,$g=Math.PI,kx=$g/2,zg=2*$g;o(JJ,"acos");o($9,"asin")});function q5(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new jp(e)}var z9=O(()=>{"use strict";PL();o(q5,"withPath")});function DNe(t){return t.innerRadius}function RNe(t){return t.outerRadius}function LNe(t){return t.startAngle}function NNe(t){return t.endAngle}function MNe(t){return t&&t.padAngle}function INe(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pD*D+M*M&&(A=I,L=N),{cx:A,cy:L,x01:-f,y01:-d,x11:A*(i/w-1),y11:L*(i/w-1)}}function uc(){var t=DNe,e=RNe,r=ei(0),n=null,i=LNe,a=NNe,s=MNe,l=null,u=q5(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-kx,y=a.apply(this,arguments)-kx,v=F9(y-g),x=y>g;if(l||(l=f=u()),mma))l.moveTo(0,0);else if(v>zg-ma)l.moveTo(m*Pf(g),m*cc(g)),l.arc(0,0,m,g,y,!x),p>ma&&(l.moveTo(p*Pf(y),p*cc(y)),l.arc(0,0,p,y,g,x));else{var b=g,T=y,E=g,w=y,k=v,S=v,A=s.apply(this,arguments)/2,L=A>ma&&(n?+n.apply(this,arguments):n0(p*p+m*m)),I=G5(F9(m-p)/2,+r.apply(this,arguments)),N=I,C=I,_,D;if(L>ma){var M=$9(L/p*cc(A)),R=$9(L/m*cc(A));(k-=M*2)>ma?(M*=x?1:-1,E+=M,w-=M):(k=0,E=w=(g+y)/2),(S-=R*2)>ma?(R*=x?1:-1,b+=R,T-=R):(S=0,b=T=(g+y)/2)}var P=m*Pf(b),B=m*cc(b),F=p*Pf(w),G=p*cc(w);if(I>ma){var $=m*Pf(T),V=m*cc(T),X=p*Pf(E),Q=p*cc(E),H;if(v<$g)if(H=INe(P,B,X,Q,$,V,F,G)){var ie=P-H[0],Y=B-H[1],le=$-H[0],ee=V-H[1],J=1/cc(JJ((ie*le+Y*ee)/(n0(ie*ie+Y*Y)*n0(le*le+ee*ee)))/2),te=n0(H[0]*H[0]+H[1]*H[1]);N=G5(I,(p-te)/(J-1)),C=G5(I,(m-te)/(J+1))}else N=C=0}S>ma?C>ma?(_=U5(X,Q,P,B,m,C,x),D=U5($,V,F,G,m,C,x),l.moveTo(_.cx+_.x01,_.cy+_.y01),Cma)||!(k>ma)?l.lineTo(F,G):N>ma?(_=U5(F,G,$,V,p,-N,x),D=U5(P,B,X,Q,p,-N,x),l.lineTo(_.cx+_.x01,_.cy+_.y01),N{"use strict";z5();V5();z9();o(DNe,"arcInnerRadius");o(RNe,"arcOuterRadius");o(LNe,"arcStartAngle");o(NNe,"arcEndAngle");o(MNe,"arcPadAngle");o(INe,"intersect");o(U5,"cornerTangents");o(uc,"default")});function Ex(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var j6t,G9=O(()=>{"use strict";j6t=Array.prototype.slice;o(Ex,"default")});function tee(t){this._context=t}function au(t){return new tee(t)}var V9=O(()=>{"use strict";o(tee,"Linear");tee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}},"point")};o(au,"default")});function ree(t){return t[0]}function nee(t){return t[1]}var iee=O(()=>{"use strict";o(ree,"x");o(nee,"y")});function hc(t,e){var r=ei(!0),n=null,i=au,a=null,s=q5(l);t=typeof t=="function"?t:t===void 0?ree:ei(t),e=typeof e=="function"?e:e===void 0?nee:ei(e);function l(u){var h,f=(u=Ex(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";G9();z5();V9();z9();iee();o(hc,"default")});function q9(t,e){return et?1:e>=t?0:NaN}var see=O(()=>{"use strict";o(q9,"default")});function U9(t){return t}var oee=O(()=>{"use strict";o(U9,"default")});function W5(){var t=U9,e=q9,r=null,n=ei(0),i=ei(zg),a=ei(0);function s(l){var u,h=(l=Ex(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(zg,Math.max(-zg,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),T=b*(v<0?-1:1),E;for(u=0;u0&&(p+=E);for(e!=null?m.sort(function(w,k){return e(g[w],g[k])}):r!=null&&m.sort(function(w,k){return r(l[w],l[k])}),u=0,d=p?(v-h*T)/p:0;u0?E*d:0)+T,g[f]={data:l[f],index:u,value:E,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:ei(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:ei(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:ei(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:ei(+l),s):a},s}var lee=O(()=>{"use strict";G9();z5();see();oee();V5();o(W5,"default")});function Sx(t){return new H5(t,!0)}function Cx(t){return new H5(t,!1)}var H5,cee=O(()=>{"use strict";H5=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(Sx,"bumpX");o(Cx,"bumpY")});function Go(){}var Ax=O(()=>{"use strict";o(Go,"default")});function Gg(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function _x(t){this._context=t}function fc(t){return new _x(t)}var Dx=O(()=>{"use strict";o(Gg,"point");o(_x,"Basis");_x.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:Gg(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Gg(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(fc,"default")});function uee(t){this._context=t}function Y5(t){return new uee(t)}var hee=O(()=>{"use strict";Ax();Dx();o(uee,"BasisClosed");uee.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Gg(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Y5,"default")});function fee(t){this._context=t}function j5(t){return new fee(t)}var dee=O(()=>{"use strict";Dx();o(fee,"BasisOpen");fee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Gg(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(j5,"default")});function pee(t,e){this._basis=new _x(t),this._beta=e}var W9,mee=O(()=>{"use strict";Dx();o(pee,"Bundle");pee.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};W9=o((function t(e){function r(n){return e===1?new _x(n):new pee(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r}),"custom")(.85)});function Vg(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function X5(t,e){this._context=t,this._k=(1-e)/6}var Rx,Lx=O(()=>{"use strict";o(Vg,"point");o(X5,"Cardinal");X5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Vg(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Vg(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Rx=o((function t(e){function r(n){return new X5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function K5(t,e){this._context=t,this._k=(1-e)/6}var H9,Y9=O(()=>{"use strict";Ax();Lx();o(K5,"CardinalClosed");K5.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vg(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};H9=o((function t(e){function r(n){return new K5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function Q5(t,e){this._context=t,this._k=(1-e)/6}var j9,X9=O(()=>{"use strict";Lx();o(Q5,"CardinalOpen");Q5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vg(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};j9=o((function t(e){function r(n){return new Q5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function Nx(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>ma){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>ma){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function gee(t,e){this._context=t,this._alpha=e}var Mx,Z5=O(()=>{"use strict";V5();Lx();o(Nx,"point");o(gee,"CatmullRom");gee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Nx(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Mx=o((function t(e){function r(n){return e?new gee(n,e):new X5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function yee(t,e){this._context=t,this._alpha=e}var K9,vee=O(()=>{"use strict";Y9();Ax();Z5();o(yee,"CatmullRomClosed");yee.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Nx(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};K9=o((function t(e){function r(n){return e?new yee(n,e):new K5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function xee(t,e){this._context=t,this._alpha=e}var Q9,bee=O(()=>{"use strict";X9();Z5();o(xee,"CatmullRomOpen");xee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Nx(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Q9=o((function t(e){function r(n){return e?new xee(n,e):new Q5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function Tee(t){this._context=t}function J5(t){return new Tee(t)}var wee=O(()=>{"use strict";Ax();o(Tee,"LinearClosed");Tee.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(J5,"default")});function kee(t){return t<0?-1:1}function Eee(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(kee(a)+kee(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function See(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Z9(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function ek(t){this._context=t}function Cee(t){this._context=new Aee(t)}function Aee(t){this._context=t}function Ix(t){return new ek(t)}function Ox(t){return new Cee(t)}var _ee=O(()=>{"use strict";o(kee,"sign");o(Eee,"slope3");o(See,"slope2");o(Z9,"point");o(ek,"MonotoneX");ek.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Z9(this,this._t0,See(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Z9(this,See(this,r=Eee(this,t,e)),r);break;default:Z9(this,this._t0,r=Eee(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(Cee,"MonotoneY");(Cee.prototype=Object.create(ek.prototype)).point=function(t,e){ek.prototype.point.call(this,e,t)};o(Aee,"ReflectContext");Aee.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(Ix,"monotoneX");o(Ox,"monotoneY")});function Ree(t){this._context=t}function Dee(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e{"use strict";o(Ree,"Natural");Ree.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=Dee(t),i=Dee(e),a=0,s=1;s{"use strict";o(tk,"Step");tk.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o(Ug,"default");o(Px,"stepBefore");o(Bx,"stepAfter")});var Mee=O(()=>{"use strict";eee();aee();lee();hee();dee();Dx();cee();mee();Y9();X9();Lx();vee();bee();Z5();wee();V9();_ee();Lee();Nee()});var Iee=O(()=>{"use strict"});var Oee=O(()=>{"use strict"});function Bf(t,e,r){this.k=t,this.x=e,this.y=r}function eN(t){for(;!t.__zoom;)if(!(t=t.parentNode))return J9;return t.__zoom}var J9,tN=O(()=>{"use strict";o(Bf,"Transform");Bf.prototype={constructor:Bf,scale:o(function(t){return t===1?this:new Bf(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Bf(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};J9=new Bf(1,0,0);eN.prototype=Bf.prototype;o(eN,"transform")});var Pee=O(()=>{"use strict"});var Bee=O(()=>{"use strict";x5();Iee();Oee();tN();Pee()});var Fee=O(()=>{"use strict";Bee();tN()});var Ar=O(()=>{"use strict";Cf();HX();hZ();mZ();Ag();gZ();yZ();qD();BK();vZ();LL();xZ();TZ();jL();OZ();aJ();Rg();PL();sJ();bZ();oJ();jJ();QJ();rc();Mee();F5();O9();d5();x5();Fee()});var $ee=nr(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.BLANK_URL=ga.relativeFirstCharacters=ga.whitespaceEscapeCharsRegex=ga.urlSchemeRegex=ga.ctrlCharactersRegex=ga.htmlCtrlEntityRegex=ga.htmlEntitiesRegex=ga.invalidProtocolRegex=void 0;ga.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;ga.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;ga.htmlCtrlEntityRegex=/&(newline|tab);/gi;ga.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;ga.urlSchemeRegex=/^.+(:|:)/gim;ga.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;ga.relativeFirstCharacters=[".","/"];ga.BLANK_URL="about:blank"});var Wg=nr(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.sanitizeUrl=void 0;var Ja=$ee();function ONe(t){return Ja.relativeFirstCharacters.indexOf(t[0])>-1}o(ONe,"isRelativeUrlWithoutProtocol");function PNe(t){var e=t.replace(Ja.ctrlCharactersRegex,"");return e.replace(Ja.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(PNe,"decodeHtmlCharacters");function BNe(t){return URL.canParse(t)}o(BNe,"isValidUrl");function zee(t){try{return decodeURIComponent(t)}catch{return t}}o(zee,"decodeURI");function FNe(t){if(!t)return Ja.BLANK_URL;var e,r=zee(t.trim());do r=PNe(r).replace(Ja.htmlCtrlEntityRegex,"").replace(Ja.ctrlCharactersRegex,"").replace(Ja.whitespaceEscapeCharsRegex,"").trim(),r=zee(r),e=r.match(Ja.ctrlCharactersRegex)||r.match(Ja.htmlEntitiesRegex)||r.match(Ja.htmlCtrlEntityRegex)||r.match(Ja.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Ja.BLANK_URL;if(ONe(n))return n;var i=n.trimStart(),a=i.match(Ja.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Ja.invalidProtocolRegex.test(s))return Ja.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!BNe(l))return Ja.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(FNe,"sanitizeUrl");rk.sanitizeUrl=FNe});var rN,i0,nk,Gee,ik,ak,Oa,Fx,sk,a0=O(()=>{"use strict";rN=Ra(Wg(),1);Ar();Ur();i0=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),nk=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};i0(t,r).lower()},"drawBackgroundRect"),Gee=o((t,e)=>{let r=e.text.replace(Ip," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),ik=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,rN.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),ak=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,rN.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),Oa=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),Fx=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),sk=o(()=>{let t=je(".mermaidTooltip");return t.empty()&&(t=je("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),t},"createTooltip")});var Vee,nN,qee,$Ne,zNe,GNe,VNe,qNe,UNe,WNe,HNe,YNe,jNe,XNe,KNe,bh,dc,Uee=O(()=>{"use strict";Ur();a0();Vee=Ra(Wg(),1),nN=o(function(t,e){return i0(t,e)},"drawRect"),qee=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,Vee.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),$Ne=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();bh(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),bh(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),zNe=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};nN(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,bh(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,bh(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,bh(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),GNe=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=Oa();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},nN(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=KNe(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":qee(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,bh(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?bh(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&bh(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,bh(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),VNe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),qNe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),UNe=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),WNe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),HNe=o(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),YNe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),jNe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),XNe=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),KNe=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),bh=(function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(st.lineBreakRegex);for(let v=0;v{"use strict";QNe=typeof global=="object"&&global&&global.Object===Object&&global,lk=QNe});var ZNe,JNe,Ri,yl=O(()=>{"use strict";iN();ZNe=typeof self=="object"&&self&&self.Object===Object&&self,JNe=lk||ZNe||Function("return this")(),Ri=JNe});var eMe,ya,s0=O(()=>{"use strict";yl();eMe=Ri.Symbol,ya=eMe});function nMe(t){var e=tMe.call(t,$x),r=t[$x];try{t[$x]=void 0;var n=!0}catch{}var i=rMe.call(t);return n&&(e?t[$x]=r:delete t[$x]),i}var Wee,tMe,rMe,$x,Hee,Yee=O(()=>{"use strict";s0();Wee=Object.prototype,tMe=Wee.hasOwnProperty,rMe=Wee.toString,$x=ya?ya.toStringTag:void 0;o(nMe,"getRawTag");Hee=nMe});function sMe(t){return aMe.call(t)}var iMe,aMe,jee,Xee=O(()=>{"use strict";iMe=Object.prototype,aMe=iMe.toString;o(sMe,"objectToString");jee=sMe});function cMe(t){return t==null?t===void 0?lMe:oMe:Kee&&Kee in Object(t)?Hee(t):jee(t)}var oMe,lMe,Kee,Pa,Th=O(()=>{"use strict";s0();Yee();Xee();oMe="[object Null]",lMe="[object Undefined]",Kee=ya?ya.toStringTag:void 0;o(cMe,"baseGetTag");Pa=cMe});function uMe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var On,Vo=O(()=>{"use strict";o(uMe,"isObject");On=uMe});function mMe(t){if(!On(t))return!1;var e=Pa(t);return e==fMe||e==dMe||e==hMe||e==pMe}var hMe,fMe,dMe,pMe,Vi,zx=O(()=>{"use strict";Th();Vo();hMe="[object AsyncFunction]",fMe="[object Function]",dMe="[object GeneratorFunction]",pMe="[object Proxy]";o(mMe,"isFunction");Vi=mMe});var gMe,ck,Qee=O(()=>{"use strict";yl();gMe=Ri["__core-js_shared__"],ck=gMe});function yMe(t){return!!Zee&&Zee in t}var Zee,Jee,ete=O(()=>{"use strict";Qee();Zee=(function(){var t=/[^.]+$/.exec(ck&&ck.keys&&ck.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();o(yMe,"isMasked");Jee=yMe});function bMe(t){if(t!=null){try{return xMe.call(t)}catch{}try{return t+""}catch{}}return""}var vMe,xMe,wh,aN=O(()=>{"use strict";vMe=Function.prototype,xMe=vMe.toString;o(bMe,"toSource");wh=bMe});function _Me(t){if(!On(t)||Jee(t))return!1;var e=Vi(t)?AMe:wMe;return e.test(wh(t))}var TMe,wMe,kMe,EMe,SMe,CMe,AMe,tte,rte=O(()=>{"use strict";zx();ete();Vo();aN();TMe=/[\\^$.*+?()[\]{}|]/g,wMe=/^\[object .+?Constructor\]$/,kMe=Function.prototype,EMe=Object.prototype,SMe=kMe.toString,CMe=EMe.hasOwnProperty,AMe=RegExp("^"+SMe.call(CMe).replace(TMe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(_Me,"baseIsNative");tte=_Me});function DMe(t,e){return t?.[e]}var nte,ite=O(()=>{"use strict";o(DMe,"getValue");nte=DMe});function RMe(t,e){var r=nte(t,e);return tte(r)?r:void 0}var ro,Ff=O(()=>{"use strict";rte();ite();o(RMe,"getNative");ro=RMe});var LMe,kh,Gx=O(()=>{"use strict";Ff();LMe=ro(Object,"create"),kh=LMe});function NMe(){this.__data__=kh?kh(null):{},this.size=0}var ate,ste=O(()=>{"use strict";Gx();o(NMe,"hashClear");ate=NMe});function MMe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ote,lte=O(()=>{"use strict";o(MMe,"hashDelete");ote=MMe});function BMe(t){var e=this.__data__;if(kh){var r=e[t];return r===IMe?void 0:r}return PMe.call(e,t)?e[t]:void 0}var IMe,OMe,PMe,cte,ute=O(()=>{"use strict";Gx();IMe="__lodash_hash_undefined__",OMe=Object.prototype,PMe=OMe.hasOwnProperty;o(BMe,"hashGet");cte=BMe});function zMe(t){var e=this.__data__;return kh?e[t]!==void 0:$Me.call(e,t)}var FMe,$Me,hte,fte=O(()=>{"use strict";Gx();FMe=Object.prototype,$Me=FMe.hasOwnProperty;o(zMe,"hashHas");hte=zMe});function VMe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=kh&&e===void 0?GMe:e,this}var GMe,dte,pte=O(()=>{"use strict";Gx();GMe="__lodash_hash_undefined__";o(VMe,"hashSet");dte=VMe});function Hg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";ste();lte();ute();fte();pte();o(Hg,"Hash");Hg.prototype.clear=ate;Hg.prototype.delete=ote;Hg.prototype.get=cte;Hg.prototype.has=hte;Hg.prototype.set=dte;sN=Hg});function qMe(){this.__data__=[],this.size=0}var gte,yte=O(()=>{"use strict";o(qMe,"listCacheClear");gte=qMe});function UMe(t,e){return t===e||t!==t&&e!==e}var vl,o0=O(()=>{"use strict";o(UMe,"eq");vl=UMe});function WMe(t,e){for(var r=t.length;r--;)if(vl(t[r][0],e))return r;return-1}var $f,Vx=O(()=>{"use strict";o0();o(WMe,"assocIndexOf");$f=WMe});function jMe(t){var e=this.__data__,r=$f(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():YMe.call(e,r,1),--this.size,!0}var HMe,YMe,vte,xte=O(()=>{"use strict";Vx();HMe=Array.prototype,YMe=HMe.splice;o(jMe,"listCacheDelete");vte=jMe});function XMe(t){var e=this.__data__,r=$f(e,t);return r<0?void 0:e[r][1]}var bte,Tte=O(()=>{"use strict";Vx();o(XMe,"listCacheGet");bte=XMe});function KMe(t){return $f(this.__data__,t)>-1}var wte,kte=O(()=>{"use strict";Vx();o(KMe,"listCacheHas");wte=KMe});function QMe(t,e){var r=this.__data__,n=$f(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var Ete,Ste=O(()=>{"use strict";Vx();o(QMe,"listCacheSet");Ete=QMe});function Yg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";yte();xte();Tte();kte();Ste();o(Yg,"ListCache");Yg.prototype.clear=gte;Yg.prototype.delete=vte;Yg.prototype.get=bte;Yg.prototype.has=wte;Yg.prototype.set=Ete;zf=Yg});var ZMe,Gf,uk=O(()=>{"use strict";Ff();yl();ZMe=ro(Ri,"Map"),Gf=ZMe});function JMe(){this.size=0,this.__data__={hash:new sN,map:new(Gf||zf),string:new sN}}var Cte,Ate=O(()=>{"use strict";mte();qx();uk();o(JMe,"mapCacheClear");Cte=JMe});function eIe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var _te,Dte=O(()=>{"use strict";o(eIe,"isKeyable");_te=eIe});function tIe(t,e){var r=t.__data__;return _te(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Vf,Ux=O(()=>{"use strict";Dte();o(tIe,"getMapData");Vf=tIe});function rIe(t){var e=Vf(this,t).delete(t);return this.size-=e?1:0,e}var Rte,Lte=O(()=>{"use strict";Ux();o(rIe,"mapCacheDelete");Rte=rIe});function nIe(t){return Vf(this,t).get(t)}var Nte,Mte=O(()=>{"use strict";Ux();o(nIe,"mapCacheGet");Nte=nIe});function iIe(t){return Vf(this,t).has(t)}var Ite,Ote=O(()=>{"use strict";Ux();o(iIe,"mapCacheHas");Ite=iIe});function aIe(t,e){var r=Vf(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var Pte,Bte=O(()=>{"use strict";Ux();o(aIe,"mapCacheSet");Pte=aIe});function jg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";Ate();Lte();Mte();Ote();Bte();o(jg,"MapCache");jg.prototype.clear=Cte;jg.prototype.delete=Rte;jg.prototype.get=Nte;jg.prototype.has=Ite;jg.prototype.set=Pte;l0=jg});function oN(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(sIe);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(oN.Cache||l0),r}var sIe,Xg,lN=O(()=>{"use strict";hk();sIe="Expected a function";o(oN,"memoize");oN.Cache=l0;Xg=oN});function oIe(){this.__data__=new zf,this.size=0}var Fte,$te=O(()=>{"use strict";qx();o(oIe,"stackClear");Fte=oIe});function lIe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var zte,Gte=O(()=>{"use strict";o(lIe,"stackDelete");zte=lIe});function cIe(t){return this.__data__.get(t)}var Vte,qte=O(()=>{"use strict";o(cIe,"stackGet");Vte=cIe});function uIe(t){return this.__data__.has(t)}var Ute,Wte=O(()=>{"use strict";o(uIe,"stackHas");Ute=uIe});function fIe(t,e){var r=this.__data__;if(r instanceof zf){var n=r.__data__;if(!Gf||n.length{"use strict";qx();uk();hk();hIe=200;o(fIe,"stackSet");Hte=fIe});function Kg(t){var e=this.__data__=new zf(t);this.size=e.size}var su,Wx=O(()=>{"use strict";qx();$te();Gte();qte();Wte();Yte();o(Kg,"Stack");Kg.prototype.clear=Fte;Kg.prototype.delete=zte;Kg.prototype.get=Vte;Kg.prototype.has=Ute;Kg.prototype.set=Hte;su=Kg});var dIe,Qg,cN=O(()=>{"use strict";Ff();dIe=(function(){try{var t=ro(Object,"defineProperty");return t({},"",{}),t}catch{}})(),Qg=dIe});function pIe(t,e,r){e=="__proto__"&&Qg?Qg(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var ou,Zg=O(()=>{"use strict";cN();o(pIe,"baseAssignValue");ou=pIe});function mIe(t,e,r){(r!==void 0&&!vl(t[e],r)||r===void 0&&!(e in t))&&ou(t,e,r)}var Hx,uN=O(()=>{"use strict";Zg();o0();o(mIe,"assignMergeValue");Hx=mIe});function gIe(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var jte,Xte=O(()=>{"use strict";o(gIe,"createBaseFor");jte=gIe});var yIe,Jg,fk=O(()=>{"use strict";Xte();yIe=jte(),Jg=yIe});function xIe(t,e){if(e)return t.slice();var r=t.length,n=Zte?Zte(r):new t.constructor(r);return t.copy(n),n}var Jte,Kte,vIe,Qte,Zte,dk,hN=O(()=>{"use strict";yl();Jte=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kte=Jte&&typeof module=="object"&&module&&!module.nodeType&&module,vIe=Kte&&Kte.exports===Jte,Qte=vIe?Ri.Buffer:void 0,Zte=Qte?Qte.allocUnsafe:void 0;o(xIe,"cloneBuffer");dk=xIe});var bIe,e1,fN=O(()=>{"use strict";yl();bIe=Ri.Uint8Array,e1=bIe});function TIe(t){var e=new t.constructor(t.byteLength);return new e1(e).set(new e1(t)),e}var t1,pk=O(()=>{"use strict";fN();o(TIe,"cloneArrayBuffer");t1=TIe});function wIe(t,e){var r=e?t1(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var mk,dN=O(()=>{"use strict";pk();o(wIe,"cloneTypedArray");mk=wIe});function kIe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";o(kIe,"copyArray");gk=kIe});var ere,EIe,tre,rre=O(()=>{"use strict";Vo();ere=Object.create,EIe=(function(){function t(){}return o(t,"object"),function(e){if(!On(e))return{};if(ere)return ere(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}})(),tre=EIe});function SIe(t,e){return function(r){return t(e(r))}}var yk,mN=O(()=>{"use strict";o(SIe,"overArg");yk=SIe});var CIe,r1,vk=O(()=>{"use strict";mN();CIe=yk(Object.getPrototypeOf,Object),r1=CIe});function _Ie(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||AIe;return t===r}var AIe,lu,n1=O(()=>{"use strict";AIe=Object.prototype;o(_Ie,"isPrototype");lu=_Ie});function DIe(t){return typeof t.constructor=="function"&&!lu(t)?tre(r1(t)):{}}var xk,gN=O(()=>{"use strict";rre();vk();n1();o(DIe,"initCloneObject");xk=DIe});function RIe(t){return t!=null&&typeof t=="object"}var wi,xl=O(()=>{"use strict";o(RIe,"isObjectLike");wi=RIe});function NIe(t){return wi(t)&&Pa(t)==LIe}var LIe,yN,nre=O(()=>{"use strict";Th();xl();LIe="[object Arguments]";o(NIe,"baseIsArguments");yN=NIe});var ire,MIe,IIe,OIe,pc,i1=O(()=>{"use strict";nre();xl();ire=Object.prototype,MIe=ire.hasOwnProperty,IIe=ire.propertyIsEnumerable,OIe=yN((function(){return arguments})())?yN:function(t){return wi(t)&&MIe.call(t,"callee")&&!IIe.call(t,"callee")},pc=OIe});var PIe,zt,oi=O(()=>{"use strict";PIe=Array.isArray,zt=PIe});function FIe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=BIe}var BIe,a1,bk=O(()=>{"use strict";BIe=9007199254740991;o(FIe,"isLength");a1=FIe});function $Ie(t){return t!=null&&a1(t.length)&&!Vi(t)}var Li,bl=O(()=>{"use strict";zx();bk();o($Ie,"isArrayLike");Li=$Ie});function zIe(t){return wi(t)&&Li(t)}var c0,Tk=O(()=>{"use strict";bl();xl();o(zIe,"isArrayLikeObject");c0=zIe});function GIe(){return!1}var are,sre=O(()=>{"use strict";o(GIe,"stubFalse");are=GIe});var cre,ore,VIe,lre,qIe,UIe,mc,s1=O(()=>{"use strict";yl();sre();cre=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ore=cre&&typeof module=="object"&&module&&!module.nodeType&&module,VIe=ore&&ore.exports===cre,lre=VIe?Ri.Buffer:void 0,qIe=lre?lre.isBuffer:void 0,UIe=qIe||are,mc=UIe});function KIe(t){if(!wi(t)||Pa(t)!=WIe)return!1;var e=r1(t);if(e===null)return!0;var r=jIe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&ure.call(r)==XIe}var WIe,HIe,YIe,ure,jIe,XIe,hre,fre=O(()=>{"use strict";Th();vk();xl();WIe="[object Object]",HIe=Function.prototype,YIe=Object.prototype,ure=HIe.toString,jIe=YIe.hasOwnProperty,XIe=ure.call(Object);o(KIe,"isPlainObject");hre=KIe});function TOe(t){return wi(t)&&a1(t.length)&&!!ti[Pa(t)]}var QIe,ZIe,JIe,eOe,tOe,rOe,nOe,iOe,aOe,sOe,oOe,lOe,cOe,uOe,hOe,fOe,dOe,pOe,mOe,gOe,yOe,vOe,xOe,bOe,ti,dre,pre=O(()=>{"use strict";Th();bk();xl();QIe="[object Arguments]",ZIe="[object Array]",JIe="[object Boolean]",eOe="[object Date]",tOe="[object Error]",rOe="[object Function]",nOe="[object Map]",iOe="[object Number]",aOe="[object Object]",sOe="[object RegExp]",oOe="[object Set]",lOe="[object String]",cOe="[object WeakMap]",uOe="[object ArrayBuffer]",hOe="[object DataView]",fOe="[object Float32Array]",dOe="[object Float64Array]",pOe="[object Int8Array]",mOe="[object Int16Array]",gOe="[object Int32Array]",yOe="[object Uint8Array]",vOe="[object Uint8ClampedArray]",xOe="[object Uint16Array]",bOe="[object Uint32Array]",ti={};ti[fOe]=ti[dOe]=ti[pOe]=ti[mOe]=ti[gOe]=ti[yOe]=ti[vOe]=ti[xOe]=ti[bOe]=!0;ti[QIe]=ti[ZIe]=ti[uOe]=ti[JIe]=ti[hOe]=ti[eOe]=ti[tOe]=ti[rOe]=ti[nOe]=ti[iOe]=ti[aOe]=ti[sOe]=ti[oOe]=ti[lOe]=ti[cOe]=!1;o(TOe,"baseIsTypedArray");dre=TOe});function wOe(t){return function(e){return t(e)}}var Tl,u0=O(()=>{"use strict";o(wOe,"baseUnary");Tl=wOe});var mre,Yx,kOe,vN,EOe,wl,jx=O(()=>{"use strict";iN();mre=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yx=mre&&typeof module=="object"&&module&&!module.nodeType&&module,kOe=Yx&&Yx.exports===mre,vN=kOe&&lk.process,EOe=(function(){try{var t=Yx&&Yx.require&&Yx.require("util").types;return t||vN&&vN.binding&&vN.binding("util")}catch{}})(),wl=EOe});var gre,SOe,qf,Xx=O(()=>{"use strict";pre();u0();jx();gre=wl&&wl.isTypedArray,SOe=gre?Tl(gre):dre,qf=SOe});function COe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var Kx,xN=O(()=>{"use strict";o(COe,"safeGet");Kx=COe});function DOe(t,e,r){var n=t[e];(!(_Oe.call(t,e)&&vl(n,r))||r===void 0&&!(e in t))&&ou(t,e,r)}var AOe,_Oe,cu,o1=O(()=>{"use strict";Zg();o0();AOe=Object.prototype,_Oe=AOe.hasOwnProperty;o(DOe,"assignValue");cu=DOe});function ROe(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a{"use strict";o1();Zg();o(ROe,"copyObject");kl=ROe});function LOe(t,e){for(var r=-1,n=Array(t);++r{"use strict";o(LOe,"baseTimes");yre=LOe});function IOe(t,e){var r=typeof t;return e=e??NOe,!!e&&(r=="number"||r!="symbol"&&MOe.test(t))&&t>-1&&t%1==0&&t{"use strict";NOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;o(IOe,"isIndex");Uf=IOe});function BOe(t,e){var r=zt(t),n=!r&&pc(t),i=!r&&!n&&mc(t),a=!r&&!n&&!i&&qf(t),s=r||n||i||a,l=s?yre(t.length,String):[],u=l.length;for(var h in t)(e||POe.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Uf(h,u)))&&l.push(h);return l}var OOe,POe,wk,bN=O(()=>{"use strict";vre();i1();oi();s1();Qx();Xx();OOe=Object.prototype,POe=OOe.hasOwnProperty;o(BOe,"arrayLikeKeys");wk=BOe});function FOe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var xre,bre=O(()=>{"use strict";o(FOe,"nativeKeysIn");xre=FOe});function GOe(t){if(!On(t))return xre(t);var e=lu(t),r=[];for(var n in t)n=="constructor"&&(e||!zOe.call(t,n))||r.push(n);return r}var $Oe,zOe,Tre,wre=O(()=>{"use strict";Vo();n1();bre();$Oe=Object.prototype,zOe=$Oe.hasOwnProperty;o(GOe,"baseKeysIn");Tre=GOe});function VOe(t){return Li(t)?wk(t,!0):Tre(t)}var no,Wf=O(()=>{"use strict";bN();wre();bl();o(VOe,"keysIn");no=VOe});function qOe(t){return kl(t,no(t))}var kre,Ere=O(()=>{"use strict";h0();Wf();o(qOe,"toPlainObject");kre=qOe});function UOe(t,e,r,n,i,a,s){var l=Kx(t,r),u=Kx(e,r),h=s.get(u);if(h){Hx(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=zt(u),m=!p&&mc(u),g=!p&&!m&&qf(u);f=u,p||m||g?zt(l)?f=l:c0(l)?f=gk(l):m?(d=!1,f=dk(u,!0)):g?(d=!1,f=mk(u,!0)):f=[]:hre(u)||pc(u)?(f=l,pc(l)?f=kre(l):(!On(l)||Vi(l))&&(f=xk(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),Hx(t,r,f)}var Sre,Cre=O(()=>{"use strict";uN();hN();dN();pN();gN();i1();oi();Tk();s1();zx();Vo();fre();Xx();xN();Ere();o(UOe,"baseMergeDeep");Sre=UOe});function Are(t,e,r,n,i){t!==e&&Jg(e,function(a,s){if(i||(i=new su),On(a))Sre(t,e,s,r,Are,n,i);else{var l=n?n(Kx(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),Hx(t,s,l)}},no)}var _re,Dre=O(()=>{"use strict";Wx();uN();fk();Cre();Vo();Wf();xN();o(Are,"baseMerge");_re=Are});function WOe(t){return t}var va,Eh=O(()=>{"use strict";o(WOe,"identity");va=WOe});function HOe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var Rre,Lre=O(()=>{"use strict";o(HOe,"apply");Rre=HOe});function YOe(t,e,r){return e=Nre(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=Nre(n.length-e,0),s=Array(a);++i{"use strict";Lre();Nre=Math.max;o(YOe,"overRest");kk=YOe});function jOe(t){return function(){return t}}var io,wN=O(()=>{"use strict";o(jOe,"constant");io=jOe});var XOe,Mre,Ire=O(()=>{"use strict";wN();cN();Eh();XOe=Qg?function(t,e){return Qg(t,"toString",{configurable:!0,enumerable:!1,value:io(e),writable:!0})}:va,Mre=XOe});function JOe(t){var e=0,r=0;return function(){var n=ZOe(),i=QOe-(n-r);if(r=n,i>0){if(++e>=KOe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var KOe,QOe,ZOe,Ore,Pre=O(()=>{"use strict";KOe=800,QOe=16,ZOe=Date.now;o(JOe,"shortOut");Ore=JOe});var ePe,Ek,kN=O(()=>{"use strict";Ire();Pre();ePe=Ore(Mre),Ek=ePe});function tPe(t,e){return Ek(kk(t,e,va),t+"")}var uu,l1=O(()=>{"use strict";Eh();TN();kN();o(tPe,"baseRest");uu=tPe});function rPe(t,e,r){if(!On(r))return!1;var n=typeof e;return(n=="number"?Li(r)&&Uf(e,r.length):n=="string"&&e in r)?vl(r[e],t):!1}var qo,f0=O(()=>{"use strict";o0();bl();Qx();Vo();o(rPe,"isIterateeCall");qo=rPe});function nPe(t){return uu(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&qo(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n{"use strict";l1();f0();o(nPe,"createAssigner");Sk=nPe});var iPe,Hf,SN=O(()=>{"use strict";Dre();EN();iPe=Sk(function(t,e,r){_re(t,e,r)}),Hf=iPe});function _N(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return aPe[r]??e}function cPe(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,$re.sanitizeUrl)(r):r}function Vre(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function hPe(t){let e,r=0;t.forEach(i=>{r+=Vre(i,e),e=i});let n=r/2;return DN(t,n)}function fPe(t){return t.length===1?t[0]:hPe(t)}function pPe(t,e,r){let n=structuredClone(r);K.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=DN(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function RN(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function mPe(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;iMath.round(parseFloat(a)).toString());return i.includes(r.toString())||i.includes(n.toString())}var $re,AN,aPe,sPe,oPe,zre,Gre,lPe,uPe,Bre,DN,dPe,Fre,LN,NN,gPe,yPe,MN,vPe,IN,CN,Ck,xPe,bPe,Uo,Xt,qre,ao,hu,ar=O(()=>{"use strict";$re=Ra(Wg(),1);Ar();Ur();p8();xt();Fp();sg();lN();SN();Ow();AN="\u200B",aPe={curveBasis:fc,curveBasisClosed:Y5,curveBasisOpen:j5,curveBumpX:Sx,curveBumpY:Cx,curveBundle:W9,curveCardinalClosed:H9,curveCardinalOpen:j9,curveCardinal:Rx,curveCatmullRomClosed:K9,curveCatmullRomOpen:Q9,curveCatmullRom:Mx,curveLinear:au,curveLinearClosed:J5,curveMonotoneX:Ix,curveMonotoneY:Ox,curveNatural:qg,curveStep:Ug,curveStepAfter:Bx,curveStepBefore:Px},sPe=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,oPe=o(function(t,e){let r=zre(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);cg(s),n=Vn(n,[...s])}else n=r.args;if(!n)return;let i=vg(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),zre=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${sPe.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),K.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=Bp.exec(t))!==null;)if(n.index===Bp.lastIndex&&Bp.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return K.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),Gre=o(function(t){return t.replace(Bp,"")},"removeDirectives"),lPe=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(_N,"interpolateToCurve");o(cPe,"formatUrl");uPe=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),DN=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=Vre(i,r);if(a===0)return r;if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:Bre((1-s)*r.x+s*i.x,5),y:Bre((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),dPe=o((t,e,r)=>{K.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=DN(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(pPe,"calcTerminalLabelPosition");o(RN,"getStylesFromArray");Fre=0,LN=o(()=>(Fre++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Fre),"generateId");o(mPe,"makeRandomHex");NN=o(t=>mPe(t.length),"random"),gPe=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),yPe=o(function(t,e){let r=e.text.replace(st.lineBreakRegex," "),[,n]=Uo(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),MN=Xg((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),st.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=xa(`${s} `,r),h=xa(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=vPe(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),vPe=Xg((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(xa(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(Ak,"calculateTextHeight");o(xa,"calculateTextWidth");IN=Xg((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=Uo(r),s=["sans-serif",n],l=t.split(st.lineBreakRegex),u=[],h=je("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=gPe();v.text=y||AN;let x=yPe(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),CN=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},xPe=o(function(t){return Ck=Ck||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Ck.innerHTML=t,unescape(Ck.textContent)},"entityDecode");o(ON,"isDetailedError");bPe=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),Uo=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(Pn,"cleanAndMerge");Xt={assignWithDepth:Vn,wrapLabel:MN,calculateTextHeight:Ak,calculateTextWidth:xa,calculateTextDimensions:IN,cleanAndMerge:Pn,detectInit:oPe,detectDirective:zre,isSubstringInArray:lPe,interpolateToCurve:_N,calcLabelPosition:fPe,calcCardinalityPosition:dPe,calcTerminalLabelPosition:pPe,formatUrl:cPe,getStylesFromArray:RN,generateId:LN,random:NN,runFunc:uPe,entityDecode:xPe,insertTitle:bPe,isLabelCoordinateInPath:TPe,parseFontSize:Uo,InitIDGenerator:CN},qre=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),ao=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),hu=o((t,e,{counter:r=0,prefix:n,suffix:i},a)=>a||`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId");o(Bn,"handleUndefinedAttr");o(TPe,"isLabelCoordinateInPath")});function gc(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=MN(e[t].text,i,n),e[t].textLines=e[t].text.split(st.lineBreakRegex).length,e[t].width=i,e[t].height=Ak(e[t].text,n);else{let a=e[t].text.split(st.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(xa(l,n),e[t].width),s=Ak(l,n),e[t].height=e[t].height+s}}function jre(t,e,r,n,i){let a=new Lk(i);a.data.widthLimit=r.data.widthLimit/Math.min(PN,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Jt.wrap,f=_k(Jt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",gc("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=_k(Jt);gc("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=_k(Jt);g.fontSize=g.fontSize-2,gc("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%PN===0){let g=r.data.startx+Jt.diagramMarginX,y=r.data.stopy+Jt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Jt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&Yre(a,t,d,p),e=l.alias;let m=i.db.getBoundaries(e);m.length>0&&jre(t,e,a,m,i),l.alias!=="global"&&Hre(t,l,a),r.data.stopy=Math.max(a.data.stopy+Jt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Jt.c4ShapeMargin,r.data.stopx),Dk=Math.max(Dk,r.data.stopx),Rk=Math.max(Rk,r.data.stopy)}}var Dk,Rk,Wre,PN,Jt,Lk,BN,Zx,_k,wPe,Hre,Yre,so,Ure,kPe,EPe,SPe,FN,Xre=O(()=>{"use strict";Ar();Uee();xt();TD();Ur();LD();jt();sg();ar();Ti();Dk=0,Rk=0,Wre=4,PN=2;F2.yy=U2;Jt={},Lk=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,BN(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>Wre)&&(r=this.nextData.startx+e.margin+Jt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},BN(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},BN=o(function(t){Vn(Jt,t),t.fontFamily&&(Jt.personFontFamily=Jt.systemFontFamily=Jt.messageFontFamily=t.fontFamily),t.fontSize&&(Jt.personFontSize=Jt.systemFontSize=Jt.messageFontSize=t.fontSize),t.fontWeight&&(Jt.personFontWeight=Jt.systemFontWeight=Jt.messageFontWeight=t.fontWeight)},"setConf"),Zx=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),_k=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),wPe=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(gc,"calcC4ShapeTextWH");Hre=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Jt.c4ShapeMargin-35;let n=e.wrap&&Jt.wrap,i=_k(Jt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=xa(e.label.text,i);gc("label",e,n,i,a),dc.drawBoundary(t,e,Jt)},"drawBoundary"),Yre=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=Zx(Jt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=xa("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Jt.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Jt.wrap,h=Jt.width-Jt.c4ShapePadding*2,f=Zx(Jt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",gc("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=Zx(Jt,s.typeC4Shape.text);gc("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=Zx(Jt,s.techn.text);gc("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=Zx(Jt,s.typeC4Shape.text);gc("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Jt.c4ShapePadding,s.width=Math.max(s.width||Jt.width,p,Jt.width),s.height=Math.max(s.height||Jt.height,d,Jt.height),s.margin=s.margin||Jt.c4ShapeMargin,t.insert(s),dc.drawC4Shape(e,s,Jt)}t.bumpLastMargin(Jt.c4ShapeMargin)},"drawC4ShapeArray"),so=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},Ure=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&ri?p=new so(r,l):r==i&&na&&(p=new so(s,n)),r>i&&n=f?p=new so(r,l+f*t.width/2):p=new so(s-u/h*t.height/2,n+t.height):r=f?p=new so(r+t.width,l+f*t.width/2):p=new so(s+u/h*t.height/2,n+t.height):ra?d>=f?p=new so(r+t.width,l-f*t.width/2):p=new so(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new so(r,l-t.width/2*f):p=new so(s-t.height/2*u/h,n)),p},"getIntersectPoint"),kPe=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=Ure(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=Ure(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),EPe=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Jt.wrap,l=wPe(Jt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=xa(a.label.text,l);gc("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=xa(a.techn.text,l),gc("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=xa(a.descr.text,l),gc("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=kPe(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}dc.drawRels(t,e,Jt)},"drawRels");o(jre,"drawInsideBoundary");SPe=o(function(t,e,r,n){Jt=ve().c4;let i=ve().securityLevel,a;i==="sandbox"&&(a=je("#i"+e));let s=i==="sandbox"?je(a.nodes()[0].contentDocument.body):je("body"),l=n.db;n.db.setWrap(Jt.wrap),Wre=l.getC4ShapeInRow(),PN=l.getC4BoundaryInRow(),K.debug(`C:${JSON.stringify(Jt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):je(`[id="${e}"]`);dc.insertComputerIcon(u),dc.insertDatabaseIcon(u),dc.insertClockIcon(u);let h=new Lk(n);h.setData(Jt.diagramMarginX,Jt.diagramMarginX,Jt.diagramMarginY,Jt.diagramMarginY),h.data.widthLimit=screen.availWidth,Dk=Jt.diagramMarginX,Rk=Jt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundaries("");jre(u,"",h,d,n),dc.insertArrowHead(u),dc.insertArrowEnd(u),dc.insertArrowCrossHead(u),dc.insertArrowFilledHead(u),EPe(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=Dk,h.data.stopy=Rk;let p=h.data,g=p.stopy-p.starty+2*Jt.diagramMarginY,v=p.stopx-p.startx+2*Jt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Jt.diagramMarginX).attr("y",p.starty+Jt.diagramMarginY),Zr(u,g,v,Jt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Jt.diagramMarginX+" -"+(Jt.diagramMarginY+x)+" "+v+" "+(g+x)),K.debug("models:",p)},"draw"),FN={drawPersonOrSystemArray:Yre,drawBoundary:Hre,setConf:BN,draw:SPe}});var CPe,Kre,Qre=O(()=>{"use strict";CPe=o(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),Kre=CPe});var Zre={};vr(Zre,{diagram:()=>APe});var APe,Jre=O(()=>{"use strict";TD();LD();Xre();Qre();APe={parser:EX,db:U2,renderer:FN,styles:Kre,init:o(({c4:t,wrap:e})=>{FN.setConf(t),U2.setWrap(e)},"init")}});function gne(t){return typeof t>"u"||t===null}function LPe(t){return typeof t=="object"&&t!==null}function NPe(t){return Array.isArray(t)?t:gne(t)?[]:[t]}function MPe(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;rl&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}function zN(t,e){return ra.repeat(" ",e-t.length)+t}function VPe(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=$N(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=ra.repeat(" ",e.indent)+zN((t.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=$N(t.buffer,n[s],i[s],t.position,d),l+=ra.repeat(" ",e.indent)+zN((t.line+1).toString(),f)+" | "+h.str+` +`,l+=ra.repeat("-",e.indent+f+3+h.pos)+`^ +`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=$N(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=ra.repeat(" ",e.indent)+zN((t.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function HPe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function YPe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(UPe.indexOf(r)===-1)throw new oo('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=HPe(e.styleAliases||null),WPe.indexOf(this.kind)===-1)throw new oo('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function tne(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function jPe(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}function xBe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ra.isNegativeZero(t))return"-0.0";return r=t.toString(10),vBe.test(r)?r.replace("e",".e"):r}function bBe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ra.isNegativeZero(t))}function kBe(t){return t===null?!1:xne.exec(t)!==null||bne.exec(t)!==null}function EBe(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=xne.exec(t),e===null&&(e=bne.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function SBe(t){return t.toISOString()}function ABe(t){return t==="<<"||t===null}function DBe(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=YN;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8===0}function RBe(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=YN,s=0,l=[];for(e=0;e>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function LBe(t){var e="",r=0,n,i,a=t.length,s=YN;for(n=0;n>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}function NBe(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}function PBe(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r>10)+55296,(t-65536&1023)+56320)}function Cne(t,e,r){e==="__proto__"?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,writable:!0,value:r}):t[e]=r}function tFe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Tne,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Dne(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=qPe(r),new oo(e,r)}function sr(t,e){throw Dne(t,e)}function Ik(t,e){t.onWarning&&t.onWarning.call(null,Dne(t,e))}function Yf(t,e,r,n){var i,a,s,l;if(e1&&(t.result+=ra.repeat(` +`,e-1))}function rFe(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),lo(m)||u1(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),lo(i)||r&&u1(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),lo(i)||r&&u1(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),lo(n))break}else{if(t.position===t.lineStart&&Bk(t)||r&&u1(m))break;if(fu(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,qi(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(Yf(t,a,s,!1),XN(t,t.line-u),a=s=t.position,l=!1),p0(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return Yf(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}function nFe(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Yf(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else fu(r)?(Yf(t,n,i,!0),XN(t,qi(t,!1,e)),n=i=t.position):t.position===t.lineStart&&Bk(t)?sr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);sr(t,"unexpected end of the stream within a single quoted scalar")}function iFe(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return Yf(t,r,t.position,!0),t.position++,!0;if(l===92){if(Yf(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),fu(l))qi(t,!1,e);else if(l<256&&Ane[l])t.result+=_ne[l],t.position++;else if((s=ZBe(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=QBe(l))>=0?a=(a<<4)+s:sr(t,"expected hexadecimal character");t.result+=eFe(a),t.position++}else sr(t,"unknown escape sequence");r=n=t.position}else fu(l)?(Yf(t,r,n,!0),XN(t,qi(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Bk(t)?sr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}sr(t,"unexpected end of the stream within a double quoted scalar")}function aFe(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(qi(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&sr(t,"expected the node content, but found ','"):sr(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),lo(h)&&(d=p=!0,t.position++,qi(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,f1(t,e,Nk,!1,!0),v=t.tag,y=t.result,qi(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),qi(t,!0,e),f1(t,e,Nk,!1,!0),x=t.result),m?h1(t,l,g,v,y,x,n,i,a):d?l.push(h1(t,null,g,v,y,x,n,i,a)):l.push(y),qi(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}sr(t,"unexpected end of the stream within a flow collection")}function sFe(t,e){var r,n,i=GN,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)GN===i?i=d===43?rne:YBe:sr(t,"repeat of a chomping mode identifier");else if((f=JBe(d))>=0)f===0?sr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?sr(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(p0(d)){do d=t.input.charCodeAt(++t.position);while(p0(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!fu(d)&&d!==0)}for(;d!==0;){for(jN(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndentl&&(l=t.lineIndent),fu(d)){u++;continue}if(t.lineIndente)&&u!==0)sr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(s=t.line,l=t.lineStart,u=t.position),f1(t,e,Mk,!0,i)&&(v?g=t.result:y=t.result),v||(h1(t,d,p,m,g,y,s,l,u),m=g=y=null),qi(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)sr(t,"bad indentation of a mapping entry");else if(t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d"),t.result!==null&&g.kind!==t.kind&&sr(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):sr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function hFe(t){var e=t.position,r,n,i,a=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(qi(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!lo(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&sr(t,"directive name must not be less than one character in length");s!==0;){for(;p0(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!fu(s));break}if(fu(s))break;for(r=t.position;s!==0&&!lo(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&jN(t),jf.call(ane,n)?ane[n](t,n,i):Ik(t,'unknown document directive "'+n+'"')}if(qi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,qi(t,!0,-1)):a&&sr(t,"directives end mark is expected"),f1(t,t.lineIndent-1,Mk,!1,!0),qi(t,!0,-1),t.checkLineBreaks&&XBe.test(t.input.slice(e,t.position))&&Ik(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Bk(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,qi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var n=Rne(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&e+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function $ne(t){var e=/^\n* /;return e.test(t)}function GFe(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=$Fe(Jx(t,0))&&zFe(Jx(t,t.length-1));if(e||s)for(u=0;u=65536?u+=2:u++){if(h=Jx(t,u),!nb(h))return c1;y=y&&une(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=Jx(t,u),h===tb)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!nb(h))return c1;y=y&&une(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?zne:a===rb?c1:WN:r>9&&$ne(t)?c1:s?a===rb?c1:WN:p?Vne:Gne}function VFe(t,e,r,n,i){t.dump=(function(){if(e.length===0)return t.quotingType===rb?'""':"''";if(!t.noCompatMode&&(NFe.indexOf(e)!==-1||MFe.test(e)))return t.quotingType===rb?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return FFe(t,h)}switch(o(u,"testAmbiguity"),GFe(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case zne:return e;case WN:return"'"+e.replace(/'/g,"''")+"'";case Gne:return"|"+hne(e,t.indent)+fne(lne(e,a));case Vne:return">"+hne(e,t.indent)+fne(lne(qFe(e,s),a));case c1:return'"'+UFe(e)+'"';default:throw new oo("impossible error: invalid scalar style")}})()}function hne(t,e){var r=$ne(t)?String(e):"",n=t[t.length-1]===` +`,i=n&&(t[t.length-2]===` +`||t===` +`),a=i?"+":n?"":"-";return r+a+` +`}function fne(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function qFe(t,e){for(var r=/(\n+)([^\n]*)/g,n=(function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,dne(t.slice(0,h),e)})(),i=t[0]===` +`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+dne(u,e),i=a}return n}function dne(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=` +`+t.slice(i,a),i=a+1),s=l;return u+=` +`,t.length-i>e&&s>i?u+=t.slice(i,s)+` +`+t.slice(s+1):u+=t.slice(i),u.slice(1)}function UFe(t){for(var e="",r=0,n,i=0;i=65536?i+=2:i++)r=Jx(t,i),n=ts[r],!n&&nb(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||OFe(r);return e}function WFe(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a"u"&&Sh(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}function pne(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s"u"&&Sh(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=UN(t,e)),t.dump&&tb===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}function HFe(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Sh(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}function YFe(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new oo("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(t.dump&&tb===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=UN(t,e)),Sh(t,e+1,f,!0,d)&&(t.dump&&tb===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}function mne(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}function Sh(t,e,r,n,i,a,s){t.tag=null,t.dump=r,mne(t,r,!1)||mne(t,r,!0);var l=Nne.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(YFe(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(HFe(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?pne(t,e-1,t.dump,i):pne(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(WFe(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&VFe(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new oo("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}function jFe(t,e){var r=[],n=[],i,a;for(HN(t,r,n),i=0,a=n.length;i{"use strict";o(gne,"isNothing");o(LPe,"isObject");o(NPe,"toArray");o(MPe,"extend");o(IPe,"repeat");o(OPe,"isNegativeZero");PPe=gne,BPe=LPe,FPe=NPe,$Pe=IPe,zPe=OPe,GPe=MPe,ra={isNothing:PPe,isObject:BPe,toArray:FPe,repeat:$Pe,isNegativeZero:zPe,extend:GPe};o(yne,"formatError");o(eb,"YAMLException$1");eb.prototype=Object.create(Error.prototype);eb.prototype.constructor=eb;eb.prototype.toString=o(function(e){return this.name+": "+yne(this,e)},"toString");oo=eb;o($N,"getLine");o(zN,"padStart");o(VPe,"makeSnippet");qPe=VPe,UPe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],WPe=["scalar","sequence","mapping"];o(HPe,"compileStyleAliases");o(YPe,"Type$1");es=YPe;o(tne,"compileList");o(jPe,"compileMap");o(VN,"Schema$1");VN.prototype.extend=o(function(e){var r=[],n=[];if(e instanceof es)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new oo("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof es))throw new oo("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new oo("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new oo("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof es))throw new oo("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(VN.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=tne(i,"implicit"),i.compiledExplicit=tne(i,"explicit"),i.compiledTypeMap=jPe(i.compiledImplicit,i.compiledExplicit),i},"extend");XPe=VN,KPe=new es("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(t){return t!==null?t:""},"construct")}),QPe=new es("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(t){return t!==null?t:[]},"construct")}),ZPe=new es("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(t){return t!==null?t:{}},"construct")}),JPe=new XPe({explicit:[KPe,QPe,ZPe]});o(eBe,"resolveYamlNull");o(tBe,"constructYamlNull");o(rBe,"isNull");nBe=new es("tag:yaml.org,2002:null",{kind:"scalar",resolve:eBe,construct:tBe,predicate:rBe,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(iBe,"resolveYamlBoolean");o(aBe,"constructYamlBoolean");o(sBe,"isBoolean");oBe=new es("tag:yaml.org,2002:bool",{kind:"scalar",resolve:iBe,construct:aBe,predicate:sBe,represent:{lowercase:o(function(t){return t?"true":"false"},"lowercase"),uppercase:o(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(lBe,"isHexCode");o(cBe,"isOctCode");o(uBe,"isDecCode");o(hBe,"resolveYamlInteger");o(fBe,"constructYamlInteger");o(dBe,"isInteger");pBe=new es("tag:yaml.org,2002:int",{kind:"scalar",resolve:hBe,construct:fBe,predicate:dBe,represent:{binary:o(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),mBe=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(gBe,"resolveYamlFloat");o(yBe,"constructYamlFloat");vBe=/^[-+]?[0-9]+e/;o(xBe,"representYamlFloat");o(bBe,"isFloat");TBe=new es("tag:yaml.org,2002:float",{kind:"scalar",resolve:gBe,construct:yBe,predicate:bBe,represent:xBe,defaultStyle:"lowercase"}),vne=JPe.extend({implicit:[nBe,oBe,pBe,TBe]}),wBe=vne,xne=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),bne=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(kBe,"resolveYamlTimestamp");o(EBe,"constructYamlTimestamp");o(SBe,"representYamlTimestamp");CBe=new es("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:kBe,construct:EBe,instanceOf:Date,represent:SBe});o(ABe,"resolveYamlMerge");_Be=new es("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ABe}),YN=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(DBe,"resolveYamlBinary");o(RBe,"constructYamlBinary");o(LBe,"representYamlBinary");o(NBe,"isBinary");MBe=new es("tag:yaml.org,2002:binary",{kind:"scalar",resolve:DBe,construct:RBe,predicate:NBe,represent:LBe}),IBe=Object.prototype.hasOwnProperty,OBe=Object.prototype.toString;o(PBe,"resolveYamlOmap");o(BBe,"constructYamlOmap");FBe=new es("tag:yaml.org,2002:omap",{kind:"sequence",resolve:PBe,construct:BBe}),$Be=Object.prototype.toString;o(zBe,"resolveYamlPairs");o(GBe,"constructYamlPairs");VBe=new es("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:zBe,construct:GBe}),qBe=Object.prototype.hasOwnProperty;o(UBe,"resolveYamlSet");o(WBe,"constructYamlSet");HBe=new es("tag:yaml.org,2002:set",{kind:"mapping",resolve:UBe,construct:WBe}),Tne=wBe.extend({implicit:[CBe,_Be],explicit:[MBe,FBe,VBe,HBe]}),jf=Object.prototype.hasOwnProperty,Nk=1,wne=2,kne=3,Mk=4,GN=1,YBe=2,rne=3,jBe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,XBe=/[\x85\u2028\u2029]/,KBe=/[,\[\]\{\}]/,Ene=/^(?:!|!!|![a-z\-]+!)$/i,Sne=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(nne,"_class");o(fu,"is_EOL");o(p0,"is_WHITE_SPACE");o(lo,"is_WS_OR_EOL");o(u1,"is_FLOW_INDICATOR");o(QBe,"fromHexCode");o(ZBe,"escapedHexLen");o(JBe,"fromDecimalCode");o(ine,"simpleEscapeSequence");o(eFe,"charFromCodepoint");o(Cne,"setProperty");Ane=new Array(256),_ne=new Array(256);for(d0=0;d0<256;d0++)Ane[d0]=ine(d0)?1:0,_ne[d0]=ine(d0);o(tFe,"State$1");o(Dne,"generateError");o(sr,"throwError");o(Ik,"throwWarning");ane={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&sr(e,"duplication of %YAML directive"),n.length!==1&&sr(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&sr(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&sr(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&Ik(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&sr(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],Ene.test(i)||sr(e,"ill-formed tag handle (first argument) of the TAG directive"),jf.call(e.tagMap,i)&&sr(e,'there is a previously declared suffix for "'+i+'" tag handle'),Sne.test(a)||sr(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{sr(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};o(Yf,"captureSegment");o(sne,"mergeMappings");o(h1,"storeMappingPair");o(jN,"readLineBreak");o(qi,"skipSeparationSpace");o(Bk,"testDocumentSeparator");o(XN,"writeFoldedLines");o(rFe,"readPlainScalar");o(nFe,"readSingleQuotedScalar");o(iFe,"readDoubleQuotedScalar");o(aFe,"readFlowCollection");o(sFe,"readBlockScalar");o(one,"readBlockSequence");o(oFe,"readBlockMapping");o(lFe,"readTagProperty");o(cFe,"readAnchorProperty");o(uFe,"readAlias");o(f1,"composeNode");o(hFe,"readDocument");o(Rne,"loadDocuments");o(fFe,"loadAll$1");o(dFe,"load$1");pFe=fFe,mFe=dFe,Lne={loadAll:pFe,load:mFe},Nne=Object.prototype.toString,Mne=Object.prototype.hasOwnProperty,KN=65279,gFe=9,tb=10,yFe=13,vFe=32,xFe=33,bFe=34,qN=35,TFe=37,wFe=38,kFe=39,EFe=42,Ine=44,SFe=45,Ok=58,CFe=61,AFe=62,_Fe=63,DFe=64,One=91,Pne=93,RFe=96,Bne=123,LFe=124,Fne=125,ts={};ts[0]="\\0";ts[7]="\\a";ts[8]="\\b";ts[9]="\\t";ts[10]="\\n";ts[11]="\\v";ts[12]="\\f";ts[13]="\\r";ts[27]="\\e";ts[34]='\\"';ts[92]="\\\\";ts[133]="\\N";ts[160]="\\_";ts[8232]="\\L";ts[8233]="\\P";NFe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],MFe=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(IFe,"compileStyleMap");o(OFe,"encodeHex");PFe=1,rb=2;o(BFe,"State");o(lne,"indentString");o(UN,"generateNextLine");o(FFe,"testImplicitResolving");o(Pk,"isWhitespace");o(nb,"isPrintable");o(cne,"isNsCharOrWhitespace");o(une,"isPlainSafe");o($Fe,"isPlainSafeFirst");o(zFe,"isPlainSafeLast");o(Jx,"codePointAt");o($ne,"needIndentIndicator");zne=1,WN=2,Gne=3,Vne=4,c1=5;o(GFe,"chooseScalarStyle");o(VFe,"writeScalar");o(hne,"blockHeader");o(fne,"dropEndingNewline");o(qFe,"foldString");o(dne,"foldLine");o(UFe,"escapeString");o(WFe,"writeFlowSequence");o(pne,"writeBlockSequence");o(HFe,"writeFlowMapping");o(YFe,"writeBlockMapping");o(mne,"detectType");o(Sh,"writeNode");o(jFe,"getDuplicateReferences");o(HN,"inspectNode");o(XFe,"dump$1");KFe=XFe,QFe={dump:KFe};o(QN,"renamed");Xf=vne,Kf=Lne.load,EMt=Lne.loadAll,SMt=QFe.dump,CMt=QN("safeLoad","load"),AMt=QN("safeLoadAll","loadAll"),_Mt=QN("safeDump","dump")});function tM(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function jne(t){g0=t}function bn(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(Ds.caret,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function du(t,e){if(e){if(Ds.escapeTest.test(t))return t.replace(Ds.escapeReplace,Une)}else if(Ds.escapeTestNoEncode.test(t))return t.replace(Ds.escapeReplaceNoEncode,Une);return t}function Wne(t){try{t=encodeURI(t).replace(Ds.percentDecode,"%")}catch{return null}return t}function Hne(t,e){let r=t.replace(Ds.findPipe,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(Ds.splitPipe),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function Yne(t,e,r,n,i){let a=e.href,s=e.title||null,l=t[1].replace(i.other.outputLinkReplace,"$1");n.state.inLink=!0;let u={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:a,title:s,text:l,tokens:n.inlineTokens(l)};return n.state.inLink=!1,u}function N$e(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let i=n[1];return e.split(` +`).map(a=>{let s=a.match(r.other.beginningSpace);if(s===null)return a;let[l]=s;return l.length>=i.length?a.slice(i.length):a}).join(` +`)}function yn(t,e){return m0.parse(t,e)}var g0,lb,Ds,ZFe,JFe,e$e,cb,t$e,rM,Xne,Kne,r$e,nM,n$e,iM,i$e,a$e,qk,aM,s$e,Qne,o$e,sM,qne,l$e,c$e,u$e,h$e,Zne,f$e,Uk,oM,Jne,d$e,eie,p$e,m$e,g$e,tie,y$e,v$e,rie,x$e,b$e,T$e,w$e,k$e,E$e,S$e,zk,C$e,nie,iie,A$e,lM,_$e,ZN,D$e,$k,ab,R$e,Une,Gk,Ch,Vk,cM,Ah,ob,M$e,m0,RMt,LMt,NMt,MMt,IMt,OMt,PMt,aie=O(()=>{"use strict";o(tM,"L");g0=tM();o(jne,"G");lb={exec:o(()=>null,"exec")};o(bn,"h");Ds={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:o(t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),"listItemRegex"),nextBulletRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),"nextBulletRegex"),hrRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),"hrRegex"),fencesBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),"fencesBeginRegex"),headingBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),"headingBeginRegex"),htmlBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),"htmlBeginRegex")},ZFe=/^(?:[ \t]*(?:\n|$))+/,JFe=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,e$e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,cb=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,t$e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,rM=/(?:[*+-]|\d{1,9}[.)])/,Xne=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Kne=bn(Xne).replace(/bull/g,rM).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),r$e=bn(Xne).replace(/bull/g,rM).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),nM=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,n$e=/^[^\n]+/,iM=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,i$e=bn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",iM).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),a$e=bn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,rM).getRegex(),qk="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",aM=/|$))/,s$e=bn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",aM).replace("tag",qk).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Qne=bn(nM).replace("hr",cb).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",qk).getRegex(),o$e=bn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Qne).getRegex(),sM={blockquote:o$e,code:JFe,def:i$e,fences:e$e,heading:t$e,hr:cb,html:s$e,lheading:Kne,list:a$e,newline:ZFe,paragraph:Qne,table:lb,text:n$e},qne=bn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",cb).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",qk).getRegex(),l$e={...sM,lheading:r$e,table:qne,paragraph:bn(nM).replace("hr",cb).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",qne).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",qk).getRegex()},c$e={...sM,html:bn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",aM).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:lb,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:bn(nM).replace("hr",cb).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",Kne).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},u$e=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,h$e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Zne=/^( {2,}|\\)\n(?!\s*$)/,f$e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,tie=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,y$e=bn(tie,"u").replace(/punct/g,Uk).getRegex(),v$e=bn(tie,"u").replace(/punct/g,eie).getRegex(),rie="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",x$e=bn(rie,"gu").replace(/notPunctSpace/g,Jne).replace(/punctSpace/g,oM).replace(/punct/g,Uk).getRegex(),b$e=bn(rie,"gu").replace(/notPunctSpace/g,m$e).replace(/punctSpace/g,p$e).replace(/punct/g,eie).getRegex(),T$e=bn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Jne).replace(/punctSpace/g,oM).replace(/punct/g,Uk).getRegex(),w$e=bn(/\\(punct)/,"gu").replace(/punct/g,Uk).getRegex(),k$e=bn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),E$e=bn(aM).replace("(?:-->|$)","-->").getRegex(),S$e=bn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",E$e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),zk=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,C$e=bn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",zk).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),nie=bn(/^!?\[(label)\]\[(ref)\]/).replace("label",zk).replace("ref",iM).getRegex(),iie=bn(/^!?\[(ref)\](?:\[\])?/).replace("ref",iM).getRegex(),A$e=bn("reflink|nolink(?!\\()","g").replace("reflink",nie).replace("nolink",iie).getRegex(),lM={_backpedal:lb,anyPunctuation:w$e,autolink:k$e,blockSkip:g$e,br:Zne,code:h$e,del:lb,emStrongLDelim:y$e,emStrongRDelimAst:x$e,emStrongRDelimUnd:T$e,escape:u$e,link:C$e,nolink:iie,punctuation:d$e,reflink:nie,reflinkSearch:A$e,tag:S$e,text:f$e,url:lb},_$e={...lM,link:bn(/^!?\[(label)\]\((.*?)\)/).replace("label",zk).getRegex(),reflink:bn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",zk).getRegex()},ZN={...lM,emStrongRDelimAst:b$e,emStrongLDelim:v$e,url:bn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Une=o(t=>R$e[t],"ke");o(du,"w");o(Wne,"J");o(Hne,"V");o(sb,"z");o(L$e,"ge");o(Yne,"fe");o(N$e,"Je");Gk=class{static{o(this,"y")}options;rules;lexer;constructor(t){this.options=t||g0}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:sb(r,` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let r=e[0],n=N$e(r,e[3]||"",this.rules);return{type:"code",raw:r,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:n}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let r=e[2].trim();if(this.rules.other.endingHash.test(r)){let n=sb(r,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(r=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:sb(e[0],` +`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let r=sb(e[0],` +`).split(` +`),n="",i="",a=[];for(;r.length>0;){let s=!1,l=[],u;for(u=0;u1,i={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let a=this.rules.other.listItemRegex(r),s=!1;for(;t;){let u=!1,h="",f="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;h=e[0],t=t.substring(h.length);let d=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,x=>" ".repeat(3*x.length)),p=t.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=e[1].length+1:(g=e[2].search(this.rules.other.nonSpaceChar),g=g>4?1:g,f=d.slice(g),g+=e[1].length),m&&this.rules.other.blankLine.test(p)&&(h+=p+` +`,t=t.substring(p.length+1),u=!0),!u){let x=this.rules.other.nextBulletRegex(g),b=this.rules.other.hrRegex(g),T=this.rules.other.fencesBeginRegex(g),E=this.rules.other.headingBeginRegex(g),w=this.rules.other.htmlBeginRegex(g);for(;t;){let k=t.split(` +`,1)[0],S;if(p=k,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),S=p):S=p.replace(this.rules.other.tabCharGlobal," "),T.test(p)||E.test(p)||w.test(p)||x.test(p)||b.test(p))break;if(S.search(this.rules.other.nonSpaceChar)>=g||!p.trim())f+=` +`+S.slice(g);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||T.test(d)||E.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=k+` +`,t=t.substring(k.length+1),d=S.slice(g)}}i.loose||(s?i.loose=!0:this.rules.other.doubleBlankLine.test(h)&&(s=!0));let y=null,v;this.options.gfm&&(y=this.rules.other.listIsTask.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),i.raw+=h}let l=i.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=f}if(i.loose)for(let u=0;u({text:l,tokens:this.lexer.inline(l),header:!1,align:a.align[u]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let r=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:r,tokens:this.lexer.inline(r)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let r=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let a=sb(r.slice(0,-1),"\\");if((r.length-a.length)%2===0)return}else{let a=L$e(e[2],"()");if(a===-2)return;if(a>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let n=e[2],i="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(n);a&&(n=a[1],i=a[3])}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?n=n.slice(1):n=n.slice(1,-1)),Yne(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let n=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[n.toLowerCase()];if(!i){let a=r[0].charAt(0);return{type:"text",raw:a,text:a}}return Yne(r,i,r[0],this.lexer,this.rules)}}emStrong(t,e,r=""){let n=this.rules.inline.emStrongLDelim.exec(t);if(!(!n||n[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[2])||!r||this.rules.inline.punctuation.exec(r))){let i=[...n[0]].length-1,a,s,l=i,u=0,h=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,e=e.slice(-1*t.length+i);(n=h.exec(e))!=null;){if(a=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!a)continue;if(s=[...a].length,n[3]||n[4]){l+=s;continue}else if((n[5]||n[6])&&i%3&&!((i+s)%3)){u+=s;continue}if(l-=s,l>0)continue;s=Math.min(s,s+l+u);let f=[...n[0]][0].length,d=t.slice(0,i+n.index+f+s);if(Math.min(i,s)%2){let m=d.slice(1,-1);return{type:"em",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}let p=d.slice(2,-2);return{type:"strong",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let r=e[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(r),i=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return n&&i&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:e[0],text:r}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let r,n;return e[2]==="@"?(r=e[1],n="mailto:"+r):(r=e[1],n=r),{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let r,n;if(e[2]==="@")r=e[0],n="mailto:"+r;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);r=e[0],e[1]==="www."?n="http://"+e[0]:n=e[0]}return{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let r=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:r}}}},Ch=class JN{static{o(this,"l")}tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||g0,this.options.tokenizer=this.options.tokenizer||new Gk,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:Ds,block:$k.normal,inline:ab.normal};this.options.pedantic?(r.block=$k.pedantic,r.inline=ab.pedantic):this.options.gfm&&(r.block=$k.gfm,this.options.breaks?r.inline=ab.breaks:r.inline=ab.gfm),this.tokenizer.rules=r}static get rules(){return{block:$k,inline:ab}}static lex(e,r){return new JN(r).lex(e)}static lexInline(e,r){return new JN(r).inlineTokens(e)}lex(e){e=e.replace(Ds.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let r=0;r(i=s.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let s=r.at(-1);i.raw.length===1&&s!==void 0?s.raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},r.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let s=1/0,l=e.slice(1),u;this.options.extensions.startBlock.forEach(h=>{u=h.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=e.substring(0,s+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let s=r.at(-1);n&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(e){let s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n=e,i=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)l.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,i.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(i=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let a=!1,s="";for(;e;){a||(s=""),a=!1;let l;if(this.options.extensions?.inline?.some(h=>(l=h.call({lexer:this},e,r))?(e=e.substring(l.raw.length),r.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let h=r.at(-1);l.type==="text"&&h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(l=this.tokenizer.emStrong(e,n,s)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.del(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),r.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),r.push(l);continue}let u=e;if(this.options.extensions?.startInline){let h=1/0,f=e.slice(1),d;this.options.extensions.startInline.forEach(p=>{d=p.call({lexer:this},f),typeof d=="number"&&d>=0&&(h=Math.min(h,d))}),h<1/0&&h>=0&&(u=e.substring(0,h+1))}if(l=this.tokenizer.inlineText(u)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(s=l.raw.slice(-1)),a=!0;let h=r.at(-1);h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(e){let h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return r}},Vk=class{static{o(this,"P")}options;parser;constructor(t){this.options=t||g0}space(t){return""}code({text:t,lang:e,escaped:r}){let n=(e||"").match(Ds.notSpaceStart)?.[0],i=t.replace(Ds.endingNewline,"")+` +`;return n?'
'+(r?i:du(i,!0))+`
+`:"
"+(r?i:du(i,!0))+`
+`}blockquote({tokens:t}){return`
+${this.parser.parse(t)}
+`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
+`}list(t){let e=t.ordered,r=t.start,n="";for(let s=0;s +`+n+" +`}listitem(t){let e="";if(t.task){let r=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=r+" "+du(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",r="";for(let i=0;i${n}`),` + +`+e+` +`+n+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${du(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let n=this.parser.parseInline(r),i=Wne(t);if(i===null)return n;t=i;let a='
    ",a}image({href:t,title:e,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let i=Wne(t);if(i===null)return du(r);t=i;let a=`${r}{let s=i[a].flat(1/0);r=r.concat(this.walkTokens(s,e))}):i.tokens&&(r=r.concat(this.walkTokens(i.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let n={...r};if(n.async=this.defaults.async||n.async||!1,r.extensions&&(r.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let a=e.renderers[i.name];a?e.renderers[i.name]=function(...s){let l=i.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[i.level];a?a.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),n.extensions=e),r.renderer){let i=this.defaults.renderer||new Vk(this.defaults);for(let a in r.renderer){if(!(a in i))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let s=a,l=r.renderer[s],u=i[s];i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f||""}}n.renderer=i}if(r.tokenizer){let i=this.defaults.tokenizer||new Gk(this.defaults);for(let a in r.tokenizer){if(!(a in i))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let s=a,l=r.tokenizer[s],u=i[s];i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f}}n.tokenizer=i}if(r.hooks){let i=this.defaults.hooks||new ob;for(let a in r.hooks){if(!(a in i))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let s=a,l=r.hooks[s],u=i[s];ob.passThroughHooks.has(a)?i[s]=h=>{if(this.defaults.async&&ob.passThroughHooksRespectAsync.has(a))return Promise.resolve(l.call(i,h)).then(d=>u.call(i,d));let f=l.call(i,h);return u.call(i,f)}:i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f}}n.hooks=i}if(r.walkTokens){let i=this.defaults.walkTokens,a=r.walkTokens;n.walkTokens=function(s){let l=[];return l.push(a.call(this,s)),i&&(l=l.concat(i.call(this,s))),l}}this.defaults={...this.defaults,...n}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Ch.lex(t,e??this.defaults)}parser(t,e){return Ah.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let n={...r},i={...this.defaults,...n},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&n.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);let s=i.hooks?i.hooks.provideLexer():t?Ch.lex:Ch.lexInline,l=i.hooks?i.hooks.provideParser():t?Ah.parse:Ah.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(u=>s(u,i)).then(u=>i.hooks?i.hooks.processAllTokens(u):u).then(u=>i.walkTokens?Promise.all(this.walkTokens(u,i.walkTokens)).then(()=>u):u).then(u=>l(u,i)).then(u=>i.hooks?i.hooks.postprocess(u):u).catch(a);try{i.hooks&&(e=i.hooks.preprocess(e));let u=s(e,i);i.hooks&&(u=i.hooks.processAllTokens(u)),i.walkTokens&&this.walkTokens(u,i.walkTokens);let h=l(u,i);return i.hooks&&(h=i.hooks.postprocess(h)),h}catch(u){return a(u)}}}onError(t,e){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let n="

    An error occurred:

    "+du(r.message+"",!0)+"
    ";return e?Promise.resolve(n):n}if(e)return Promise.reject(r);throw r}}},m0=new M$e;o(yn,"d");yn.options=yn.setOptions=function(t){return m0.setOptions(t),yn.defaults=m0.defaults,jne(yn.defaults),yn};yn.getDefaults=tM;yn.defaults=g0;yn.use=function(...t){return m0.use(...t),yn.defaults=m0.defaults,jne(yn.defaults),yn};yn.walkTokens=function(t,e){return m0.walkTokens(t,e)};yn.parseInline=m0.parseInline;yn.Parser=Ah;yn.parser=Ah.parse;yn.Renderer=Vk;yn.TextRenderer=cM;yn.Lexer=Ch;yn.lexer=Ch.lex;yn.Tokenizer=Gk;yn.Hooks=ob;yn.parse=yn;RMt=yn.options,LMt=yn.setOptions,NMt=yn.use,MMt=yn.walkTokens,IMt=yn.parseInline,OMt=Ah.parse,PMt=Ch.lex});function I$e(t,{markdownAutoWrap:e}){let n=t.replace(//g,` +`).replace(/\n{2,}/g,` +`);return Mw(n)}function sie(t){return t.split(/\\n|\n|/gi).map(e=>e.trim().match(/<[^>]+>|[^\s<>]+/g)?.map(r=>({content:r,type:"normal"}))??[])}function oie(t,e={}){let r=I$e(t,e),n=yn.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p=p.replace(/'/g,"'"),p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"?i[a].push({content:l.text,type:"normal"}):i[a].push({content:l.raw,type:"normal"})}),i}function lie(t){return t?`

    ${t.replace(/\\n|\n/g,"
    ")}

    `:""}function cie(t,{markdownAutoWrap:e}={}){let r=yn.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

    ${i.tokens?.map(n).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:(K.warn(`Unsupported markdown: ${i.type}`),i.raw)}return o(n,"output"),r.map(n).join("")}var uie=O(()=>{"use strict";aie();vD();xt();o(I$e,"preprocessMarkdown");o(sie,"nonMarkdownToLines");o(oie,"markdownToLines");o(lie,"nonMarkdownToHTML");o(cie,"markdownToHTML")});function O$e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function P$e(t,e){let r=O$e(e.content);return hie(t,[],r,e.type)}function hie(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?hie(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function fie(t,e){if(t.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return uM(t,e)}function uM(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return uM(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=P$e(e,a);r.push([l]),u.content&&t.unshift(u)}return uM(t,e,r)}var die=O(()=>{"use strict";o(O$e,"splitTextToChars");o(P$e,"splitWordToFitWidth");o(hie,"splitWordToFitWidthRecursion");o(fie,"splitLineToFitWidth");o(uM,"splitLineToFitWidthRecursion")});function pie(t,e){e&&t.attr("style",e)}async function B$e(t,e,r,n,i=!1,a=Zt()){let s=t.append("foreignObject");s.attr("width",`${Math.min(10*r,mie)}px`),s.attr("height",`${Math.min(10*r,mie)}px`);let l=s.append("xhtml:div"),u=Jn(e.label)?await gg(e.label.replace(st.lineBreakRegex,` +`),a):wr(e.label,a),h=e.isNode?"nodeLabel":"edgeLabel",f=l.append("span");f.html(u),pie(f,e.labelStyle),f.attr("class",`${h} ${n}`),pie(l,e.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("line-height","1.5"),r!==Number.POSITIVE_INFINITY&&(l.style("max-width",r+"px"),l.style("text-align","center")),l.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&l.attr("class","labelBkg");let d=l.node().getBoundingClientRect();return d.width===r&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",r+"px"),d=l.node().getBoundingClientRect()),s.node()}function hM(t,e,r,n=!1){let i=t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em");return n&&i.attr("text-anchor","middle"),i}function F$e(t,e,r){let n=t.append("text"),i=hM(n,1,e);fM(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function gie(t,e,r){let n=t.append("text"),i=hM(n,1,e);fM(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function $$e(t,e,r,n=!1,i=!1){let s=e.append("g"),l=s.insert("rect").attr("class","background").attr("style","stroke: none"),u=s.append("text").attr("y","-10.1");i&&u.attr("text-anchor","middle");let h=0;for(let f of r){let d=o(m=>F$e(s,1.1,m)<=t,"checkWidth"),p=d(f)?[f]:fie(f,d);for(let m of p){let g=hM(u,h,1.1,i);fM(g,m),h++}}if(n){let f=u.node().getBBox(),d=2;return l.attr("x",f.x-d).attr("y",f.y-d).attr("width",f.width+2*d).attr("height",f.height+2*d),s.node()}else return u.node()}function fM(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}async function z$e(t,e={}){let r=[];t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(i,a,s)=>(r.push((async()=>{let l=`${a}:${s}`;return await TX(l)?await eo(l,void 0,{class:"label-icon"}):``})()),i));let n=await Promise.all(r);return t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>n.shift()??"")}var mie,Fn,co=O(()=>{"use strict";Ar();Ur();xt();uie();ar();Xc();die();$r();o(pie,"applyStyle");mie=16384;o(B$e,"addHtmlSpan");o(hM,"createTspan");o(F$e,"computeWidthOfText");o(gie,"computeDimensionOfText");o($$e,"createFormattedText");o(fM,"updateTextContentAndStyles");o(z$e,"replaceIconSubstring");Fn=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,markdown:s=!0,isNode:l=!0,width:u=200,addSvgBackground:h=!1}={},f)=>{if(K.debug("XYZ createText",e,r,n,i,a,l,"addSvgBackground: ",h),a){let d=s?cie(e,f):lie(e),p=await z$e(ao(d),f),m=e.replace(/\\\\/g,"\\"),g={isNode:l,label:Jn(e)?m:p,labelStyle:r.replace("fill:","color:")};return await B$e(t,g,u,i,h,f)}else{let d=e.replace(//g,"
    "),p=s?oie(d.replace("
    ","
    "),f):sie(d),m=$$e(u,t,p,e?h:!1,!l);if(l){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");je(m).attr("style",g)}else{let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");je(m).select("rect").attr("style",g.replace(/background:/g,"fill:"));let y=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");je(m).select("text").attr("style",y)}return n?je(m).selectAll("tspan.text-outer-tspan").classed("title-row",!0):je(m).selectAll("tspan.text-outer-tspan").classed("row",!0),m}},"createText")});async function Wk(t,e){let r=t.getElementsByTagName("img");if(!r||r.length===0)return;let n=e.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map(i=>new Promise(a=>{function s(){if(i.style.display="flex",i.style.flexDirection="column",n){let l=ve().fontSize?ve().fontSize:window.getComputedStyle(document.body).fontSize,u=5,[h=gr.fontSize]=Uo(l),f=h*u+"px";i.style.minWidth=f,i.style.maxWidth=f}else i.style.width="100%";a(i)}o(s,"setupImage"),setTimeout(()=>{i.complete&&s()}),i.addEventListener("error",s),i.addEventListener("load",s)})))}var dM=O(()=>{"use strict";jt();La();ar();o(Wk,"configureLabelImages")});function er(t){let e=t.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return e.push("Z"),e.join(" ")}function El(t,e,r,n,i,a){let s=[],u=r-t,h=n-e,f=u/a,d=2*Math.PI/f,p=e+h/2;for(let m=0;m<=50;m++){let g=m/50,y=t+g*u,v=p+i*Math.sin(d*(y-t));s.push({x:y,y:v})}return s}function y0(t,e,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";co();jt();$r();Ar();Ur();ar();dM();pt=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||Xs(ve()?.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",Bn(e.labelStyle)),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u=!!e.icon||!!e.img,h=e.labelType==="markdown",f=await Fn(s,wr(ao(l),ve()),{useHtmlLabels:i,width:e.width||ve().flowchart?.wrappingWidth,cssClasses:h?"markdown-node-label":void 0,style:e.labelStyle,addSvgBackground:u,markdown:h},ve()),d=f.getBBox(),p=(e?.padding??0)/2;if(i){let m=f.children[0],g=je(f);await Wk(m,l),d=m.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}return i?s.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):s.attr("transform","translate(0, "+-d.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:d,halfPadding:p,label:s}},"labelHelper"),Hk=o(async(t,e,r)=>{let n=r.useHtmlLabels??Sr(ve()),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await Fn(i,wr(ao(e),ve()),{useHtmlLabels:n,width:r.width||ve()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(Sr(ve())){let u=a.children[0],h=je(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:l,label:i}},"insertLabel"),rt=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),ht=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");o(er,"createPathFromPoints");o(El,"generateFullSineWavePoints");o(y0,"generateCirclePoints")});function G$e(t,e){return t.intersect(e)}var yie,vie=O(()=>{"use strict";o(G$e,"intersectNode");yie=G$e});function V$e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(V$e,"intersectEllipse");Yk=V$e});function q$e(t,e,r){return Yk(t,e,e,r)}var xie,bie=O(()=>{"use strict";pM();o(q$e,"intersectCircle");xie=q$e});function U$e(t,e,r,n){{let i=e.y-t.y,a=t.x-e.x,s=e.x*t.y-t.x*e.y,l=i*r.x+a*r.y+s,u=i*n.x+a*n.y+s,h=1e-6;if(l!==0&&u!==0&&Tie(l,u))return;let f=n.y-r.y,d=r.x-n.x,p=n.x*r.y-r.x*n.y,m=f*t.x+d*t.y+p,g=f*e.x+d*e.y+p;if(Math.abs(m)0}var wie,kie=O(()=>{"use strict";o(U$e,"intersectLine");o(Tie,"sameSign");wie=U$e});function W$e(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";kie();o(W$e,"intersectPolygon");Eie=W$e});var H$e,Qf,mM=O(()=>{"use strict";H$e=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Qf=H$e});var Qe,Yt=O(()=>{"use strict";vie();bie();pM();Sie();mM();Qe={node:yie,circle:xie,ellipse:Yk,polygon:Eie,rect:Qf}});var Cie,pu,Y$e,ub,Ze,nt,j$e,Ut=O(()=>{"use strict";jt();Cie=o(t=>{let{handDrawnSeed:e}=ve();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),pu=o(t=>{let e=Y$e([...t.cssCompiledStyles||[],...t.cssStyles||[],...t.labelStyle||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),Y$e=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),ub=o(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),Ze=o(t=>{let{stylesArray:e}=pu(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];ub(l)?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),nt=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=ve(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=pu(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:j$e(s.get("stroke-dasharray"))},e)},"userNodeOverrides"),j$e=o(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(e.length===1){let i=isNaN(e[0])?0:e[0];return[i,i]}let r=isNaN(e[0])?0:e[0],n=isNaN(e[1])?0:e[1];return[r,n]},"getStrokeDashArray")});function gM(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function X$e(t,e){return t[0]===e[0]&&t[1]===e[1]}function K$e(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)gM(h,l,i);let u=(function(h,f,d){let p=[];for(let b of h){let T=[...b];X$e(T[0],T[T.length-1])||T.push([T[0][0],T[0][1]]),T.length>2&&p.push(T)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let T=0;Tb.yminT.ymin?1:b.xT.x?1:b.ymax===T.ymax?0:(b.ymax-T.ymax)/Math.abs(b.ymax-T.ymax))),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let T=0;Tv);T++)b=T;g.splice(0,b+1).forEach((T=>{y.push({s:v,edge:T})}))}if(y=y.filter((b=>!(b.edge.ymax<=v))),y.sort(((b,T)=>b.edge.x===T.edge.x?0:(b.edge.x-T.edge.x)/Math.abs(b.edge.x-T.edge.x))),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let E=y[b].edge,w=y[T].edge;m.push([[Math.round(E.x),v],[Math.round(w.x),v]])}v+=d,y.forEach((b=>{b.edge.x=b.edge.x+d*b.edge.islope})),x++}return m})(s,a,n);if(i){for(let h of s)gM(h,l,-i);(function(h,f,d){let p=[];h.forEach((m=>p.push(...m))),gM(p,f,d)})(u,l,-i)}return u}function pb(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),K$e(t,i,n,a||1)}function rE(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function vM(t,e){return t.type===e}function NM(t){let e=[],r=(function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:Q$e,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:yM,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:Aie,text:""},l})(t),n="BOD",i=0,a=r[i];for(;!vM(a,Aie);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return NM("M0,0"+t);i++,s=jk[a.text],n=a.text}else vM(a,yM)?s=jk[n]:(i++,s=jk[a.text],n=a.text);if(!(i+sf%2?h+r:h+e));a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map(((h,f)=>f%2?h+r:h+e));a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map(((h,f)=>f%2?h+r:h+e));a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function Pie(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(Bie(n,i,v,x,d,p,m,g,y).forEach((function(b){e.push({key:"C",data:b})})),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function hb(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function Bie(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=hb(t,e,-f),[r,n]=hb(r,n,-f);let _=(t-r)/2,D=(e-n)/2,M=_*_/(i*i)+D*D/(a*a);M>1&&(M=Math.sqrt(M),i*=M,a*=M);let R=i*i,P=a*a,B=R*P-R*D*D-P*_*_,F=R*D*D+P*_*_,G=(l===u?-1:1)*Math.sqrt(Math.abs(B/F));y=G*i*D/a+(t+r)/2,v=G*-a*_/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),tg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let _=g,D=r,M=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=Bie(r=y+i*Math.cos(g),n=v+a*Math.sin(g),D,M,i,a,s,0,u,[g,_,y,v])}x=g-m;let b=Math.cos(m),T=Math.sin(m),E=Math.cos(g),w=Math.sin(g),k=Math.tan(x/4),S=4/3*i*k,A=4/3*a*k,L=[t,e],I=[t+S*T,e-A*b],N=[r+S*w,n-A*E],C=[r,n];if(I[0]=2*L[0]-I[0],I[1]=2*L[1]-I[1],h)return[I,N,C].concat(p);{p=[I,N,C].concat(p);let _=[];for(let D=0;D2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=Mie(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=Mie(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Zf(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Zf(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function Rie(t,e){let r=Pie(Oie(NM(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Zf(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...eze(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Zf(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function xM(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+yr(i,e),n[0][1]+yr(i,e)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*zie(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=yr(m,i,h),g=yr(g,i,h);let y=[],v=o(()=>yr(d,i,h),"M"),x=o(()=>yr(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:yr(f,i,h)),e+(b?0:yr(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function Xk(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+yr(e,r),t[0][1]+yr(e,r)]),n.push([t[0][0]+yr(e,r),t[0][1]+yr(e,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=v0(u,h,.5),m=v0(h,f,.5),g=v0(f,d,.5),y=v0(p,m,.5),v=v0(m,g,.5),x=v0(y,v,.5);DM([u,p,y,x],0,r,i),DM([x,v,g,d],0,r,i)}var a,s;return i}function rze(t,e){return tE(t,0,t.length,e)}function tE(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(tE(t,e,h+1,n,a),tE(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function bM(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a0?tE(n,0,n.length,r):n}var db,TM,wM,kM,EM,SM,uo,CM,Q$e,yM,Aie,jk,Z$e,Wo,p1,RM,Kk,LM,Je,Wt=O(()=>{"use strict";o(gM,"t");o(X$e,"e");o(K$e,"s");o(pb,"n");db=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=pb(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(rE,"a");TM=class extends db{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=pb(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)rE([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},wM=class extends db{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},kM=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=pb(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=rE(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=rE(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=rE(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(S=0,A=2*Math.PI);let L=(A-S)/b.curveStepCount,I=[];for(let N=S;N<=A;N+=L)I.push([T+w*Math.cos(N),E+k*Math.sin(N)]);return I.push([T+w*Math.cos(A),E+k*Math.sin(A)]),I.push([T,E]),d1([I],b)})(e,r,n,i,a,s,h));return h.stroke!==Wo&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=_ie(e,n);if(n.fill&&n.fill!==Wo)if(n.fillStyle==="solid"){let s=_ie(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...bM(Iie([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...bM(Iie(h),10,(1+n.roughness)/2))}s.length&&i.push(d1([s],n))}return n.stroke!==Wo&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=Qk(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(xM([e],n)):i.push(d1([e],n))),n.stroke!==Wo&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==Wo,s=n.stroke!==Wo,l=!!(n.simplification&&n.simplification<1),u=(function(f,d,p){let m=Pie(Oie(NM(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...bM(x,d)),x=[]},"i"),T=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:w,data:k}of m)switch(w){case"M":T(),v=[k[0],k[1]],y.push(v);break;case"L":b(),y.push([k[0],k[1]]);break;case"C":if(!x.length){let S=y.length?y[y.length-1]:v;x.push([S[0],S[1]])}x.push([k[0],k[1]]),x.push([k[2],k[3]]),x.push([k[4],k[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(T(),!p)return g;let E=[];for(let w of g){let k=rze(w,p);k.length&&E.push(k)}return E})(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=Rie(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=Rie(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(xM(u,n));else i.push(d1(u,n));return s&&(l?u.forEach((f=>{i.push(Qk(f,!1,n))})):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map((s=>+s.toFixed(r))):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:Wo};break;case"fillPath":s={d:this.opsToPath(a),stroke:Wo,strokeWidth:0,fill:n.fill||Wo};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||Wo,strokeWidth:n,fill:Wo}}_mergedShape(e){return e.filter(((r,n)=>n===0||r.op!=="move"))}},RM=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new p1(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map((l=>+l.toFixed(n))):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},Kk="http://www.w3.org/2000/svg",LM=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new p1(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(Kk,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(Kk,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(Kk,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(Kk,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Je={canvas:o((t,e)=>new RM(t,e),"canvas"),svg:o((t,e)=>new LM(t,e),"svg"),generator:o(t=>new p1(t),"generator"),newSeed:o(()=>p1.newSeed(),"newSeed")}});function Gie(t,e){let{labelStyles:r}=Ze(e);e.labelStyle=r;let n=ht(e),i=n;n||(i="anchor");let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=1,{cssStyles:l}=e,u=Je.svg(a),h=nt(e,{fill:"black",stroke:"none",fillStyle:"solid"});e.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",Bn(l)),rt(e,d),e.intersect=function(p){return K.info("Circle intersect",e,s,p),Qe.circle(e,s,p)},a}var Vie=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();ar();o(Gie,"anchor")});function qie(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),T=Math.atan2((e-b)/a,(t-x)/i),w=Math.atan2((n-b)/a,(r-x)/i)-T;s&&w<0&&(w+=2*Math.PI),!s&&w>0&&(w-=2*Math.PI);let k=[];for(let S=0;S<20;S++){let A=S/19,L=T+A*w,I=x+i*Math.cos(L),N=b+a*Math.sin(L);k.push({x:I,y:N})}return k}async function Uie(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding+20,l=a.height+e.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=e,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...qie(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...qie(s/2,l/2,s/2,-l/2,h,u,!0)],p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=er(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),rt(e,v),e.intersect=function(x){return Qe.polygon(e,d,x)},i}var Wie=O(()=>{"use strict";$t();Yt();Ut();Wt();o(qie,"generateArcPoints");o(Uie,"bowTieRect")});function rs(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var _h=O(()=>{"use strict";o(rs,"insertPolygonShape")});async function Hie(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.height+e.padding,l=12,u=a.width+e.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=e;if(e.look==="handDrawn"){let v=Je.svg(i),x=nt(e,{}),b=er(m),T=v.path(b,x);g=i.insert(()=>T,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=rs(i,u,s,m);return n&&g.attr("style",n),rt(e,g),e.intersect=function(v){return Qe.polygon(e,m,v)},i}var Yie=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();$t();o(Hie,"card")});function jie(t,e){let{nodeStyles:r}=Ze(e);e.label="";let n=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Je.svg(n),u=nt(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=er(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(p){return Qe.polygon(e,s,p)},n}var Xie=O(()=>{"use strict";Yt();Wt();Ut();$t();o(jie,"choice")});async function nE(t,e,r){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n;let{shapeSvg:a,bbox:s,halfPadding:l}=await pt(t,e,ht(e)),u=r?.padding??l,h=s.width/2+u,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Je.svg(a),m=nt(e,{}),g=p.circle(0,0,h*2,m);f=a.insert(()=>g,":first-child"),f.attr("class","basic label-container").attr("style",Bn(d))}else f=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",i).attr("r",h).attr("cx",0).attr("cy",0);return rt(e,f),e.calcIntersect=function(p,m){let g=p.width/2;return Qe.circle(p,g,m)},e.intersect=function(p){return K.info("Circle intersect",e,h,p),Qe.circle(e,h,p)},a}var MM=O(()=>{"use strict";Wt();xt();ar();Yt();Ut();$t();o(nE,"circle")});function nze(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=t*2,i={x:n/2*e,y:n/2*r},a={x:-(n/2)*e,y:n/2*r},s={x:-(n/2)*e,y:-(n/2)*r},l={x:n/2*e,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${i.x},${i.y} L ${s.x},${s.y}`}function Kie(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:s}=e,l=Je.svg(i),u=nt(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=nze(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",n),rt(e,p),e.intersect=function(m){return K.info("crossedCircle intersect",e,{radius:a,point:m}),Qe.circle(e,a,m)},i}var Qie=O(()=>{"use strict";xt();$t();Ut();Wt();Yt();o(nze,"createLine");o(Kie,"crossedCircle")});function Jf(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),E.insert(()=>x,":first-child"),E.attr("class","text"),f&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",n),E.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,E),e.intersect=function(w){return Qe.polygon(e,p,w)},i}var Jie=O(()=>{"use strict";$t();Yt();Ut();Wt();o(Jf,"generateCirclePoints");o(Zie,"curlyBraceLeft")});function ed(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),E.insert(()=>x,":first-child"),E.attr("class","text"),f&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",n),E.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,E),e.intersect=function(w){return Qe.polygon(e,p,w)},i}var tae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(ed,"generateCirclePoints");o(eae,"curlyBraceRight")});function ns(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dS,":first-child").attr("stroke-opacity",0),A.insert(()=>b,":first-child"),A.insert(()=>w,":first-child"),A.attr("class","text"),f&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,A),e.intersect=function(L){return Qe.polygon(e,m,L)},i}var nae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(ns,"generateCirclePoints");o(rae,"curlyBraces")});async function iae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=80,l=20,u=Math.max(s,(a.width+(e.padding??0)*2)*1.25,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...y0(-v,-y/2,f,50,270,90)],T=er(b),E=p.path(T,m),w=i.insert(()=>E,":first-child");return w.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",n),w.attr("transform",`translate(${-u/2}, ${-h/2})`),rt(e,w),e.intersect=function(k){return Qe.polygon(e,b,k)},i}var aae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(iae,"curvedTrapezoid")});async function sae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+e.padding,e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+e.padding,e.height??0),d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Je.svg(i),g=aze(0,0,l,f,u,h),y=sze(0,h,l,f,u,h),v=m.path(g,nt(e,{})),x=m.path(y,nt(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=ize(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",Bn(p)).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),rt(e,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(e.padding??0)/1.5-(a.y-(a.top??0))})`),e.intersect=function(m){let g=Qe.rect(e,m),y=g.x-(e.x??0);if(u!=0&&(Math.abs(y)<(e.width??0)/2||Math.abs(y)==(e.width??0)/2&&Math.abs(g.y-(e.y??0))>(e.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(e.y??0)>0&&(v=-v),g.y+=v}return g},i}var ize,aze,sze,oae=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();ize=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),aze=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),sze=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(sae,"cylinder")});async function lae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+e.padding,u=a.height+e.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(e.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.rect(e,b)},i}var cae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(lae,"dividedRectangle")});async function uae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await pt(t,e,ht(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Je.svg(i),m=nt(e,{roughness:.2,strokeWidth:2.5}),g=nt(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",Bn(e.cssClasses)).attr("style",Bn(d)),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return rt(e,f),e.intersect=function(p){return K.info("DoubleCircle intersect",e,u,p),Qe.circle(e,u,p)},i}var hae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();ar();o(uae,"doublecircle")});function fae(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),s=7,{cssStyles:l}=e,u=Je.svg(a),{nodeBorder:h}=r,f=nt(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",i),rt(e,p),e.intersect=function(m){return K.info("filledCircle intersect",e,{radius:s,point:m}),Qe.circle(e,s,m)},a}var dae=O(()=>{"use strict";Wt();xt();Yt();Ut();$t();o(fae,"filledCircle")});async function pae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+(e.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=er(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),e.width=l,e.height=u,rt(e,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(x){return K.info("Triangle intersect",e,f,x),Qe.polygon(e,f,x)},i}var mae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();$t();o(pae,"flippedTriangle")});function gae(t,e,{dir:r,config:{state:n,themeVariables:i}}){let{nodeStyles:a}=Ze(e);e.label="";let s=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:l}=e,u=Math.max(70,e?.width??0),h=Math.max(10,e?.height??0);r==="LR"&&(u=Math.max(10,e?.width??0),h=Math.max(70,e?.height??0));let f=-1*u/2,d=-1*h/2,p=Je.svg(s),m=nt(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",a),rt(e,y);let v=n?.padding??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return Qe.rect(e,x)},s}var yae=O(()=>{"use strict";Wt();Yt();Ut();$t();o(gae,"forkJoin")});async function vae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await pt(t,e,ht(e)),u=Math.max(i,l.width+(e.padding??0)*2,e?.width??0),h=Math.max(a,l.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Je.svg(s),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...y0(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=er(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),rt(e,x),e.intersect=function(b){return K.info("Pill intersect",e,{radius:f,point:b}),Qe.polygon(e,g,b)},s}var xae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();o(vae,"halfRoundedRectangle")});async function bae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=4,l=a.height+e.padding,u=l/s,h=a.width+2*u+e.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Je.svg(i),g=nt(e,{}),y=oze(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=rs(i,h,l,f);return n&&d.attr("style",n),e.width=h,e.height=l,rt(e,d),e.intersect=function(m){return Qe.polygon(e,f,m)},i}var oze,Tae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();oze=o((t,e,r,n,i)=>[`M${t+i},${e}`,`L${t+r-i},${e}`,`L${t+r},${e-n/2}`,`L${t+r-i},${e-n}`,`L${t+i},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createHexagonPathD");o(bae,"hexagon")});async function wae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.label="",e.labelStyle=r;let{shapeSvg:i}=await pt(t,e,ht(e)),a=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:l}=e,u=Je.svg(i),h=nt(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=er(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),rt(e,m),e.intersect=function(g){return K.info("Pill intersect",e,{points:f}),Qe.polygon(e,f,g)},i}var kae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();o(wae,"hourglass")});async function Eae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await pt(t,e,"icon-shape default"),p=e.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=pu(e),x=-g/2,b=-m/2,T=e.label?8:0,E=Je.svg(h),w=nt(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let k=E.rectangle(x,b,g,m,w),S=Math.max(g,f.width),A=m+f.height+T,L=E.rectangle(-S/2,-A/2,S,A,{...w,fill:"transparent",stroke:"none"}),I=h.insert(()=>k,":first-child"),N=h.insert(()=>L);if(e.icon){let C=h.append("g");C.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let _=C.node().getBBox(),D=_.width,M=_.height,R=_.x,P=_.y;C.attr("transform",`translate(${-D/2-R},${p?f.height/2+T/2-M/2-P:-f.height/2-T/2-M/2-P})`),C.attr("style",`color: ${v.get("stroke")??y};`)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-A/2:A/2-f.height})`),I.attr("transform",`translate(0,${p?f.height/2+T/2:-f.height/2-T/2})`),rt(e,N),e.intersect=function(C){if(K.info("iconSquare intersect",e,C),!e.label)return Qe.rect(e,C);let _=e.x??0,D=e.y??0,M=e.height??0,R=[];return p?R=[{x:_-f.width/2,y:D-M/2},{x:_+f.width/2,y:D-M/2},{x:_+f.width/2,y:D-M/2+f.height+T},{x:_+g/2,y:D-M/2+f.height+T},{x:_+g/2,y:D+M/2},{x:_-g/2,y:D+M/2},{x:_-g/2,y:D-M/2+f.height+T},{x:_-f.width/2,y:D-M/2+f.height+T}]:R=[{x:_-g/2,y:D-M/2},{x:_+g/2,y:D-M/2},{x:_+g/2,y:D-M/2+m},{x:_+f.width/2,y:D-M/2+m},{x:_+f.width/2/2,y:D+M/2},{x:_-f.width/2,y:D+M/2},{x:_-f.width/2,y:D-M/2+m},{x:_-g/2,y:D-M/2+m}],Qe.polygon(e,R,C)},h}var Sae=O(()=>{"use strict";Wt();xt();Xc();Yt();Ut();$t();o(Eae,"icon")});async function Cae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await pt(t,e,"icon-shape default"),p=20,m=e.label?8:0,g=e.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=pu(e),b=Je.svg(h),T=nt(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=x.get("fill");T.stroke=E??v;let w=h.append("g");e.icon&&w.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let k=w.node().getBBox(),S=k.width,A=k.height,L=k.x,I=k.y,N=Math.max(S,A)*Math.SQRT2+p*2,C=b.circle(0,0,N,T),_=Math.max(N,f.width),D=N+f.height+m,M=b.rectangle(-_/2,-D/2,_,D,{...T,fill:"transparent",stroke:"none"}),R=h.insert(()=>C,":first-child"),P=h.insert(()=>M);return w.attr("transform",`translate(${-S/2-L},${g?f.height/2+m/2-A/2-I:-f.height/2-m/2-A/2-I})`),w.attr("style",`color: ${x.get("stroke")??y};`),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-D/2:D/2-f.height})`),R.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),rt(e,P),e.intersect=function(B){return K.info("iconSquare intersect",e,B),Qe.rect(e,B)},h}var Aae=O(()=>{"use strict";Wt();xt();Xc();Yt();Ut();$t();o(Cae,"iconCircle")});var ho,x0=O(()=>{"use strict";ho=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function _ae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await pt(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=pu(e),T=-y/2,E=-g/2,w=e.label?8:0,k=Je.svg(h),S=nt(e,{});e.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");let A=b.get("fill");S.stroke=A??x;let L=k.path(ho(T,E,y,g,5),S),I=Math.max(y,f.width),N=g+f.height+w,C=k.rectangle(-I/2,-N/2,I,N,{...S,fill:"transparent",stroke:"none"}),_=h.insert(()=>L,":first-child").attr("class","icon-shape2"),D=h.insert(()=>C);if(e.icon){let M=h.append("g");M.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let R=M.node().getBBox(),P=R.width,B=R.height,F=R.x,G=R.y;M.attr("transform",`translate(${-P/2-F},${m?f.height/2+w/2-B/2-G:-f.height/2-w/2-B/2-G})`),M.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-N/2:N/2-f.height})`),_.attr("transform",`translate(0,${m?f.height/2+w/2:-f.height/2-w/2})`),rt(e,D),e.intersect=function(M){if(K.info("iconSquare intersect",e,M),!e.label)return Qe.rect(e,M);let R=e.x??0,P=e.y??0,B=e.height??0,F=[];return m?F=[{x:R-f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2+f.height+w},{x:R+y/2,y:P-B/2+f.height+w},{x:R+y/2,y:P+B/2},{x:R-y/2,y:P+B/2},{x:R-y/2,y:P-B/2+f.height+w},{x:R-f.width/2,y:P-B/2+f.height+w}]:F=[{x:R-y/2,y:P-B/2},{x:R+y/2,y:P-B/2},{x:R+y/2,y:P-B/2+g},{x:R+f.width/2,y:P-B/2+g},{x:R+f.width/2/2,y:P+B/2},{x:R-f.width/2,y:P+B/2},{x:R-f.width/2,y:P-B/2+g},{x:R-y/2,y:P-B/2+g}],Qe.polygon(e,F,M)},h}var Dae=O(()=>{"use strict";Wt();xt();Xc();Yt();Ut();x0();$t();o(_ae,"iconRounded")});async function Rae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await pt(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=pu(e),T=-y/2,E=-g/2,w=e.label?8:0,k=Je.svg(h),S=nt(e,{});e.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");let A=b.get("fill");S.stroke=A??x;let L=k.path(ho(T,E,y,g,.1),S),I=Math.max(y,f.width),N=g+f.height+w,C=k.rectangle(-I/2,-N/2,I,N,{...S,fill:"transparent",stroke:"none"}),_=h.insert(()=>L,":first-child"),D=h.insert(()=>C);if(e.icon){let M=h.append("g");M.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let R=M.node().getBBox(),P=R.width,B=R.height,F=R.x,G=R.y;M.attr("transform",`translate(${-P/2-F},${m?f.height/2+w/2-B/2-G:-f.height/2-w/2-B/2-G})`),M.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-N/2:N/2-f.height})`),_.attr("transform",`translate(0,${m?f.height/2+w/2:-f.height/2-w/2})`),rt(e,D),e.intersect=function(M){if(K.info("iconSquare intersect",e,M),!e.label)return Qe.rect(e,M);let R=e.x??0,P=e.y??0,B=e.height??0,F=[];return m?F=[{x:R-f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2+f.height+w},{x:R+y/2,y:P-B/2+f.height+w},{x:R+y/2,y:P+B/2},{x:R-y/2,y:P+B/2},{x:R-y/2,y:P-B/2+f.height+w},{x:R-f.width/2,y:P-B/2+f.height+w}]:F=[{x:R-y/2,y:P-B/2},{x:R+y/2,y:P-B/2},{x:R+y/2,y:P-B/2+g},{x:R+f.width/2,y:P-B/2+g},{x:R+f.width/2/2,y:P+B/2},{x:R-f.width/2,y:P+B/2},{x:R-f.width/2,y:P-B/2+g},{x:R-y/2,y:P-B/2+g}],Qe.polygon(e,F,M)},h}var Lae=O(()=>{"use strict";Wt();xt();Xc();Yt();x0();Ut();$t();o(Rae,"iconSquare")});async function Nae(t,e,{config:{flowchart:r}}){let n=new Image;n.src=e?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/a;let{labelStyles:s}=Ze(e);e.labelStyle=s;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??i),h=e.constraint==="on"&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,f=e.constraint==="on"?h/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await pt(t,e,"image-shape default"),g=e.pos==="t",y=-h/2,v=-f/2,x=e.label?8:0,b=Je.svg(d),T=nt(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=b.rectangle(y,v,h,f,T),w=Math.max(h,p.width),k=f+p.height+x,S=b.rectangle(-w/2,-k/2,w,k,{...T,fill:"none",stroke:"none"}),A=d.insert(()=>E,":first-child"),L=d.insert(()=>S);if(e.img){let I=d.append("image");I.attr("href",e.img),I.attr("width",h),I.attr("height",f),I.attr("preserveAspectRatio","none"),I.attr("transform",`translate(${-h/2},${g?k/2-f:-k/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),A.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),rt(e,L),e.intersect=function(I){if(K.info("iconSquare intersect",e,I),!e.label)return Qe.rect(e,I);let N=e.x??0,C=e.y??0,_=e.height??0,D=[];return g?D=[{x:N-p.width/2,y:C-_/2},{x:N+p.width/2,y:C-_/2},{x:N+p.width/2,y:C-_/2+p.height+x},{x:N+h/2,y:C-_/2+p.height+x},{x:N+h/2,y:C+_/2},{x:N-h/2,y:C+_/2},{x:N-h/2,y:C-_/2+p.height+x},{x:N-p.width/2,y:C-_/2+p.height+x}]:D=[{x:N-h/2,y:C-_/2},{x:N+h/2,y:C-_/2},{x:N+h/2,y:C-_/2+f},{x:N+p.width/2,y:C-_/2+f},{x:N+p.width/2/2,y:C+_/2},{x:N-p.width/2,y:C+_/2},{x:N-p.width/2,y:C-_/2+f},{x:N-h/2,y:C-_/2+f}],Qe.polygon(e,D,I)},d}var Mae=O(()=>{"use strict";Wt();xt();Yt();Ut();$t();o(Nae,"imageSquare")});async function Iae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var Oae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(Iae,"inv_trapezoid")});async function Dh(t,e,r){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await pt(t,e,ht(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Je.svg(a),v=nt(e,{}),x=p||m?y.path(ho(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",Bn(g))}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",Bn(p)).attr("ry",Bn(m)).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return rt(e,d),e.calcIntersect=function(y,v){return Qe.rect(y,v)},e.intersect=function(y){return Qe.rect(e,y)},a}var m1=O(()=>{"use strict";$t();Yt();x0();Ut();Wt();ar();o(Dh,"drawRect")});async function Pae(t,e){let{shapeSvg:r,bbox:n,label:i}=await pt(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),rt(e,a),e.intersect=function(u){return Qe.rect(e,u)},r}var Bae=O(()=>{"use strict";m1();$t();Yt();o(Pae,"labelRect")});async function Fae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var $ae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(Fae,"lean_left")});async function zae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var Gae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(zae,"lean_right")});function Vae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,s=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Je.svg(i),d=nt(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=er(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),rt(e,g),e.intersect=function(y){return K.info("lightningBolt intersect",e,y),Qe.polygon(e,h,y)},i}var qae=O(()=>{"use strict";xt();$t();Ut();Wt();Yt();$t();o(Vae,"lightningBolt")});async function Uae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0),e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(e.padding??0),e.height??0),d=f*.1,p,{cssStyles:m}=e;if(e.look==="handDrawn"){let g=Je.svg(i),y=cze(0,0,l,f,u,h,d),v=uze(0,h,l,f,u,h),x=nt(e,{}),b=g.path(y,x),T=g.path(v,x);i.insert(()=>T,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=lze(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",Bn(m)).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),rt(e,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),e.intersect=function(g){let y=Qe.rect(e,g),v=y.x-(e.x??0);if(u!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(y.y-(e.y??0))>(e.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(e.y??0)>0&&(x=-x),y.y+=x}return y},i}var lze,cze,uze,Wae=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();lze=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),cze=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),uze=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(Uae,"linedCylinder")});async function Hae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...El(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),rt(e,v),e.intersect=function(x){return Qe.polygon(e,g,x)},i}var Yae=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Hae,"linedWaveEdgedRect")});async function jae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=er(y),b=m.path(x,g),T=er(v),E=m.path(T,{...g,fill:"none"}),w=i.insert(()=>E,":first-child");return w.insert(()=>b,":first-child"),w.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),rt(e,w),e.intersect=function(k){return Qe.polygon(e,y,k)},i}var Xae=O(()=>{"use strict";$t();Ut();Wt();Yt();o(jae,"multiRect")});async function Kae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=e,y=El(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],T=Je.svg(i),E=nt(e,{});e.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");let w=er(x),k=T.path(w,E),S=er(b),A=T.path(S,E),L=i.insert(()=>k,":first-child");return L.insert(()=>A),L.attr("class","basic label-container"),g&&e.look!=="handDrawn"&&L.selectAll("path").attr("style",g),n&&e.look!=="handDrawn"&&L.selectAll("path").attr("style",n),L.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),rt(e,L),e.intersect=function(I){return Qe.polygon(e,x,I)},i}var Qae=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Kae,"multiWaveEdgedRectangle")});async function Zae(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n,e.useHtmlLabels||Sr(Zt())||(e.centerLabel=!0);let{shapeSvg:s,bbox:l,label:u}=await pt(t,e,ht(e)),h=Math.max(l.width+(e.padding??0)*2,e?.width??0),f=Math.max(l.height+(e.padding??0)*2,e?.height??0),d=-h/2,p=-f/2,{cssStyles:m}=e,g=Je.svg(s),y=nt(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=g.rectangle(d,p,h,f,y),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",m),i&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",i),u.attr("transform",`translate(${-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.rect(e,b)},s}var Jae=O(()=>{"use strict";Wt();Yt();Ut();$t();$r();$r();o(Zae,"note")});async function ese(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=.5,f=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Je.svg(i),g=nt(e,{}),y=hze(0,0,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-u/2+h}, ${u/2})`),p&&d.attr("style",p)}else d=rs(i,u,u,f),d.attr("transform",`translate(${-u/2+h}, ${u/2})`);return n&&d.attr("style",n),rt(e,d),e.calcIntersect=function(m,g){let y=m.width,v=[{x:y/2,y:0},{x:y,y:-y/2},{x:y/2,y:-y},{x:0,y:-y/2}],x=Qe.polygon(m,v,g);return{x:x.x-.5,y:x.y-.5}},e.intersect=function(m){return this.calcIntersect(e,m)},i}var hze,tse=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();hze=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(ese,"question")});async function rse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0),e?.width??0),u=Math.max(a.height+(e.padding??0),e?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=e,g=Je.svg(i),y=nt(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=er(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),rt(e,b),e.intersect=function(T){return Qe.polygon(e,p,T)},i}var nse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(rse,"rect_left_inv_arrow")});var fze,yc,iE=O(()=>{"use strict";$r();jt();co();fze=o(async(t,e,r,n=!1,i=!1)=>{let a=e||"";typeof a=="object"&&(a=a[0]);let s=ve(),l=Sr(s);return await Fn(t,a,{style:r,isTitle:n,useHtmlLabels:l,markdown:!1,isNode:i,width:Number.POSITIVE_INFINITY},s)},"createLabel"),yc=fze});async function ise(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=await yc(l,h,e.labelStyle,!0,!0),d={width:0,height:0};if(Sr(ve())){let A=f.children[0],L=je(f);d=A.getBoundingClientRect(),L.attr("width",d.width),L.attr("height",d.height)}K.info("Text 2",u);let p=u||[],m=f.getBBox(),g=await yc(l,Array.isArray(p)?p.join("
    "):p,e.labelStyle,!0,!0),y=g.children[0],v=je(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;je(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),je(f).attr("transform","translate( "+(d.width(K.debug("Rough node insert CXC",I),N),":first-child"),k=a.insert(()=>(K.debug("Rough node insert CXC",I),I),":first-child")}else k=s.insert("rect",":first-child"),S=s.insert("line"),k.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),S.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return rt(e,k),e.intersect=function(A){return Qe.rect(e,A)},a}var ase=O(()=>{"use strict";Ar();$t();iE();Yt();Ut();Wt();jt();x0();xt();$r();o(ise,"rectWithTitle")});async function sse(t,e){let r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Dh(t,e,r)}var ose=O(()=>{"use strict";m1();o(sse,"roundedRect")});async function lse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",Bn(p)),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-h/2+(e.padding??0)-(a.y-(a.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.rect(e,b)},i}var cse=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();o(lse,"shadedProcess")});async function use(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=er(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))}, ${-u/4+(e.padding??0)-(a.y-(a.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.polygon(e,g,b)},i}var hse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(use,"slopedRect")});async function fse(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:e.labelPaddingX??(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Dh(t,e,r)}var dse=O(()=>{"use strict";m1();o(fse,"squareRect")});async function pse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u=s/2,{cssStyles:h}=e,f=Je.svg(i),d=nt(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=[{x:-l/2+u,y:-s/2},{x:l/2-u,y:-s/2},...y0(-l/2+u,0,u,50,90,270),{x:l/2-u,y:s/2},...y0(l/2-u,0,u,50,270,450)],m=er(p),g=f.path(m,d),y=i.insert(()=>g,":first-child");return y.attr("class","basic label-container outer-path"),h&&e.look!=="handDrawn"&&y.selectChildren("path").attr("style",h),n&&e.look!=="handDrawn"&&y.selectChildren("path").attr("style",n),rt(e,y),e.intersect=function(v){return Qe.polygon(e,p,v)},i}var mse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(pse,"stadium")});async function gse(t,e){return Dh(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var yse=O(()=>{"use strict";m1();o(gse,"state")});function vse(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n;let{cssStyles:a}=e,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),f=Je.svg(h),d=nt(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),rt(e,y),e.intersect=function(v){return Qe.circle(e,7,v)},h}var xse=O(()=>{"use strict";Wt();Yt();Ut();$t();o(vse,"stateEnd")});function bse(t,e,{config:{themeVariables:r}}){let{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Je.svg(i).circle(0,0,14,Cie(n));a=i.insert(()=>l),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return rt(e,a),e.intersect=function(s){return Qe.circle(e,7,s)},i}var Tse=O(()=>{"use strict";Wt();Yt();Ut();$t();o(bse,"stateStart")});async function wse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Je.svg(i),m=nt(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",Bn(b)),rt(e,x)}else{let p=rs(i,l,u,d);n&&p.attr("style",n),rt(e,p)}return e.intersect=function(p){return Qe.polygon(e,d,p)},i}var kse=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();ar();o(wse,"subroutine")});async function Ese(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=er(y),b=m.path(x,g),T=er(v),E=m.path(T,{...g,fillStyle:"solid"}),w=i.insert(()=>E,":first-child");return w.insert(()=>b,":first-child"),w.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),rt(e,w),e.intersect=function(k){return Qe.polygon(e,y,k)},i}var Sse=O(()=>{"use strict";$t();Ut();Wt();Yt();o(Ese,"taggedRect")});async function Cse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=e,g=Je.svg(i),y=nt(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...El(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,T=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...El(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],E=er(v),w=g.path(E,y),k=er(T),S=g.path(k,{...y,fillStyle:"solid"}),A=i.insert(()=>S,":first-child");return A.insert(()=>w,":first-child"),A.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),rt(e,A),e.intersect=function(L){return Qe.polygon(e,v,L)},i}var Ase=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Cse,"taggedWaveEdgedRectangle")});async function _se(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+e.padding,e?.width||0),l=Math.max(a.height+e.padding,e?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),rt(e,f),e.intersect=function(d){return Qe.rect(e,d)},i}var Dse=O(()=>{"use strict";$t();Yt();Ut();o(_se,"text")});async function Rse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await pt(t,e,ht(e)),u=e.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=e,g;if(e.look==="handDrawn"){let y=Je.svg(i),v=pze(0,0,p,h,d,f),x=mze(0,0,p,h,d,f),b=y.path(v,nt(e,{})),T=y.path(x,nt(e,{fill:"none"}));g=i.insert(()=>T,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=dze(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",Bn(m)).attr("style",n),g.attr("class","basic label-container"),m&&g.selectAll("path").attr("style",m),n&&g.selectAll("path").attr("style",n)}return g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),rt(e,g),e.intersect=function(y){let v=Qe.rect(e,y),x=v.y-(e.y??0);if(f!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(Math.abs(b))),b=d-b,y.x-(e.x??0)>0&&(b=-b),v.x+=b}return v},i}var dze,pze,mze,Lse=O(()=>{"use strict";$t();Ut();Wt();Yt();ar();dze=o((t,e,r,n,i,a)=>`M${t},${e} + a${i},${a} 0,0,1 0,${-n} + l${r},0 + a${i},${a} 0,0,1 0,${n} + M${r},${-n} + a${i},${a} 0,0,0 0,${n} + l${-r},0`,"createCylinderPathD"),pze=o((t,e,r,n,i,a)=>[`M${t},${e}`,`M${t+r},${e}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),mze=o((t,e,r,n,i,a)=>[`M${t+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD");o(Rse,"tiltedCylinder")});async function Nse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var Mse=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(Nse,"trapezoid")});async function Ise(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=60,l=20,u=Math.max(s,a.width+(e.padding??0)*2,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:f}=e,d=Je.svg(i),p=nt(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=er(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),rt(e,v),e.intersect=function(x){return Qe.polygon(e,m,x)},i}var Ose=O(()=>{"use strict";$t();Yt();Ut();Wt();o(Ise,"trapezoidalPentagon")});async function Pse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=e.useHtmlLabels||Sr(ve()),u=a.width+(e.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=er(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),e.width=u,e.height=h,rt(e,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(b){return K.info("Triangle intersect",e,d,b),Qe.polygon(e,d,b)},i}var Bse=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();$t();jt();$r();o(Pse,"triangle")});async function Fse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/8,f=u+h,{cssStyles:d}=e,m=70-l,g=m>0?m/2:0,y=Je.svg(i),v=nt(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...El(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=er(x),T=y.path(b,v),E=i.insert(()=>T,":first-child");return E.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",n),E.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h-(a.y-(a.top??0))})`),rt(e,E),e.intersect=function(w){return Qe.polygon(e,x,w)},i}var $se=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Fse,"waveEdgedRectangle")});async function zse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=100,l=50,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=e,v=Je.svg(i),x=nt(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...El(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...El(d/2,-g/2,-d/2,-g/2,m,-1)],T=er(b),E=v.path(T,x),w=i.insert(()=>E,":first-child");return w.attr("class","basic label-container"),y&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",y),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),rt(e,w),e.intersect=function(k){return Qe.polygon(e,b,k)},i}var Gse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(zse,"waveRectangle")});async function Vse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h} + M${f-h},${d} L${f+l},${d} + M${f},${d-h} L${f},${d+u}`;e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),rt(e,b),e.intersect=function(T){return Qe.polygon(e,y,T)},i}var qse=O(()=>{"use strict";$t();Ut();Wt();Yt();o(Vse,"windowPane")});async function IM(t,e){let r=e;if(r.alias&&(e.label=r.alias),e.look==="handDrawn"){let{themeVariables:V}=Zt(),{background:X}=V,Q={...e,id:e.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${X}`]};await IM(t,Q)}let n=Zt();e.useHtmlLabels=n.htmlLabels;let i=n.er?.diagramPadding??10,a=n.er?.entityPadding??6,{cssStyles:s}=e,{labelStyles:l,nodeStyles:u}=Ze(e);if(r.attributes.length===0&&e.label){let V={rx:0,ry:0,labelPaddingX:i,labelPaddingY:i*1.5,classes:""};xa(e.label,n)+V.labelPaddingX*20){let V=d.width+i*2-(y+v+x+b);y+=V/w,v+=V/w,x>0&&(x+=V/w),b>0&&(b+=V/w)}let S=y+v+x+b,A=Je.svg(f),L=nt(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let I=0;g.length>0&&(I=g.reduce((V,X)=>V+(X?.rowHeight??0),0));let N=Math.max(k.width+i*2,e?.width||0,S),C=Math.max((I??0)+d.height,e?.height||0),_=-N/2,D=-C/2;f.selectAll("g:not(:first-child)").each((V,X,Q)=>{let H=je(Q[X]),ie=H.attr("transform"),Y=0,le=0;if(ie){let J=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(ie);J&&(Y=parseFloat(J[1]),le=parseFloat(J[2]),H.attr("class").includes("attribute-name")?Y+=y:H.attr("class").includes("attribute-keys")?Y+=y+v:H.attr("class").includes("attribute-comment")&&(Y+=y+v+x))}H.attr("transform",`translate(${_+i/2+Y}, ${le+D+d.height+a/2})`)}),f.select(".name").attr("transform","translate("+-d.width/2+", "+(D+a/2)+")");let M=A.rectangle(_,D,N,C,L),R=f.insert(()=>M,":first-child").attr("style",s.join("")),{themeVariables:P}=Zt(),{rowEven:B,rowOdd:F,nodeBorder:G}=P;m.push(0);for(let[V,X]of g.entries()){let H=(V+1)%2===0&&X.yOffset!==0,ie=A.rectangle(_,d.height+D+X?.yOffset,N,X?.rowHeight,{...L,fill:H?B:F,stroke:G});f.insert(()=>ie,"g.label").attr("style",s.join("")).attr("class",`row-rect-${H?"even":"odd"}`)}let $=A.line(_,d.height+D,N+_,d.height+D,L);f.insert(()=>$).attr("class","divider"),$=A.line(y+_,d.height+D,y+_,C+D,L),f.insert(()=>$).attr("class","divider"),T&&($=A.line(y+v+_,d.height+D,y+v+_,C+D,L),f.insert(()=>$).attr("class","divider")),E&&($=A.line(y+v+x+_,d.height+D,y+v+x+_,C+D,L),f.insert(()=>$).attr("class","divider"));for(let V of m)$=A.line(_,d.height+D+V,N+_,d.height+D+V,L),f.insert(()=>$).attr("class","divider");if(rt(e,R),u&&e.look!=="handDrawn"){let X=u.split(";")?.filter(Q=>Q.includes("stroke"))?.map(Q=>`${Q}`).join("; ");f.selectAll("path").attr("style",X??""),f.selectAll(".row-rect-even path").attr("style",u)}return e.intersect=function(V){return Qe.rect(e,V)},f}async function mb(t,e,r,n=0,i=0,a=[],s=""){let l=t.insert("g").attr("class",`label ${a.join(" ")}`).attr("transform",`translate(${n}, ${i})`).attr("style",s);e!==jc(e)&&(e=jc(e),e=e.replaceAll("<","<").replaceAll(">",">"));let u=l.node().appendChild(await Fn(l,e,{width:xa(e,r)+100,style:s,useHtmlLabels:r.htmlLabels},r));if(e.includes("<")||e.includes(">")){let f=u.children[0];for(f.textContent=f.textContent.replaceAll("<","<").replaceAll(">",">");f.childNodes[0];)f=f.childNodes[0],f.textContent=f.textContent.replaceAll("<","<").replaceAll(">",">")}let h=u.getBBox();if(Xs(r.htmlLabels)){let f=u.children[0];f.style.textAlign="start";let d=je(u);h=f.getBoundingClientRect(),d.attr("width",h.width),d.attr("height",h.height)}return h}var Use=O(()=>{"use strict";$t();Yt();Ut();Wt();m1();$r();co();Ur();Ar();ar();o(IM,"erBox");o(mb,"addText")});async function Wse(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",ht(e)).attr("id",e.domId||e.id),l=null,u=null,h=null,f=null,d=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let b=e.annotations[0];await aE(l,{text:`\xAB${b}\xBB`},0),d=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await aE(u,e,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of e.members){let T=await aE(h,b,y,[b.parseClassifier()]);y+=T+a}m=h.node().getBBox().height,m<=0&&(m=i/2),f=s.insert("g").attr("class","methods-group text");let v=0;for(let b of e.methods){let T=await aE(f,b,v,[b.parseClassifier()]);v+=T+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${d})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${d+p+i*2})`),x=s.node().getBBox(),f.attr("transform",`translate(0, ${d+p+(m?m+i*4:i*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function aE(t,e,r,n=[]){let i=t.insert("g").attr("class","label").attr("style",n.join("; ")),a=Zt(),s="useHtmlLabels"in e?e.useHtmlLabels:Xs(a.htmlLabels)??!0,l="";"text"in e?l=e.text:l=e.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),Jn(l)&&(s=!0);let u=await Fn(i,G2(ao(l)),{width:xa(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,f=1;if(s){let d=u.children[0],p=je(u);f=d.innerHTML.split("
    ").length,d.innerHTML.includes("")&&(f+=d.innerHTML.split("").length-1);let m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,E=parseInt(b,10)*5+"px";y.style.minWidth=E,y.style.maxWidth=E}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{n.includes("font-weight: bolder")&&je(u).selectAll("tspan").attr("font-weight",""),f=u.children.length;let d=u.children[0];(u.textContent===""||u.textContent.includes(">"))&&(d.textContent=l[0]+l.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),l[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),h=u.getBBox()}return i.attr("transform","translate(0,"+(-h.height/(2*f)+r)+")"),h.height}var Hse=O(()=>{"use strict";Ar();$r();$t();ar();jt();co();Ur();o(Wse,"textHelper");o(aE,"addText")});async function Yse(t,e){let r=ve(),n=r.class.padding??12,i=n,a=e.useHtmlLabels??Xs(r.htmlLabels)??!0,s=e;s.annotations=s.annotations??[],s.members=s.members??[],s.methods=s.methods??[];let{shapeSvg:l,bbox:u}=await Wse(t,e,r,a,i),{labelStyles:h,nodeStyles:f}=Ze(e);e.labelStyle=h,e.cssStyles=s.styles||"";let d=s.styles?.join(";")||f||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));let p=s.members.length===0&&s.methods.length===0&&!r.class?.hideEmptyMembersBox,m=Je.svg(l),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=u.width,v=u.height;s.members.length===0&&s.methods.length===0?v+=i:s.members.length>0&&s.methods.length===0&&(v+=i*2);let x=-y/2,b=-v/2,T=m.rectangle(x-n,b-n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0),y+2*n,v+2*n+(p?n*2:s.members.length===0&&s.methods.length===0?-n:0),g),E=l.insert(()=>T,":first-child");E.attr("class","basic label-container");let w=E.node().getBBox();l.selectAll(".text").each((L,I,N)=>{let C=je(N[I]),_=C.attr("transform"),D=0;if(_){let B=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(_);B&&(D=parseFloat(B[2]))}let M=D+b+n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0);a||(M-=4);let R=x;(C.attr("class").includes("label-group")||C.attr("class").includes("annotation-group"))&&(R=-C.node()?.getBBox().width/2||0,l.selectAll("text").each(function(P,B,F){window.getComputedStyle(F[B]).textAnchor==="middle"&&(R=0)})),C.attr("transform",`translate(${R}, ${M})`)});let k=l.select(".annotation-group").node().getBBox().height-(p?n/2:0)||0,S=l.select(".label-group").node().getBBox().height-(p?n/2:0)||0,A=l.select(".members-group").node().getBBox().height-(p?n/2:0)||0;if(s.members.length>0||s.methods.length>0||p){let L=m.line(w.x,k+S+b+n,w.x+w.width,k+S+b+n,g);l.insert(()=>L).attr("class","divider").attr("style",d)}if(p||s.members.length>0||s.methods.length>0){let L=m.line(w.x,k+S+A+b+i*2+n,w.x+w.width,k+S+A+b+n+i*2,g);l.insert(()=>L).attr("class","divider").attr("style",d)}if(s.look!=="handDrawn"&&l.selectAll("path").attr("style",d),E.select(":nth-child(2)").attr("style",d),l.selectAll(".divider").select("path").attr("style",d),e.labelStyle?l.selectAll("span").attr("style",e.labelStyle):l.selectAll("span").attr("style",d),!a){let L=RegExp(/color\s*:\s*([^;]*)/),I=L.exec(d);if(I){let N=I[0].replace("color","fill");l.selectAll("tspan").attr("style",N)}else if(h){let N=L.exec(h);if(N){let C=N[0].replace("color","fill");l.selectAll("tspan").attr("style",C)}}}return rt(e,E),e.intersect=function(L){return Qe.rect(e,L)},l}var jse=O(()=>{"use strict";$t();jt();Ar();Wt();Ut();Yt();Hse();Ur();o(Yse,"classBox")});async function Xse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let i=e,a=e,s=20,l=20,u="verifyMethod"in e,h=ht(e),f=t.insert("g").attr("class",h).attr("id",e.domId??e.id),d;u?d=await Rh(f,`<<${i.type}>>`,0,e.labelStyle):d=await Rh(f,"<<Element>>",0,e.labelStyle);let p=d,m=await Rh(f,i.name,p,e.labelStyle+"; font-weight: bold;");if(p+=m+l,u){let k=await Rh(f,`${i.requirementId?`ID: ${i.requirementId}`:""}`,p,e.labelStyle);p+=k;let S=await Rh(f,`${i.text?`Text: ${i.text}`:""}`,p,e.labelStyle);p+=S;let A=await Rh(f,`${i.risk?`Risk: ${i.risk}`:""}`,p,e.labelStyle);p+=A,await Rh(f,`${i.verifyMethod?`Verification: ${i.verifyMethod}`:""}`,p,e.labelStyle)}else{let k=await Rh(f,`${a.type?`Type: ${a.type}`:""}`,p,e.labelStyle);p+=k,await Rh(f,`${a.docRef?`Doc Ref: ${a.docRef}`:""}`,p,e.labelStyle)}let g=(f.node()?.getBBox().width??200)+s,y=(f.node()?.getBBox().height??200)+s,v=-g/2,x=-y/2,b=Je.svg(f),T=nt(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=b.rectangle(v,x,g,y,T),w=f.insert(()=>E,":first-child");if(w.attr("class","basic label-container").attr("style",n),f.selectAll(".label").each((k,S,A)=>{let L=je(A[S]),I=L.attr("transform"),N=0,C=0;if(I){let R=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(I);R&&(N=parseFloat(R[1]),C=parseFloat(R[2]))}let _=C-y/2,D=v+s/2;(S===0||S===1)&&(D=N),L.attr("transform",`translate(${D}, ${_+s})`)}),p>d+m+l){let k=b.line(v,x+d+m+l,v+g,x+d+m+l,T);f.insert(()=>k).attr("style",n)}return rt(e,w),e.intersect=function(k){return Qe.rect(e,k)},f}async function Rh(t,e,r,n=""){if(e==="")return 0;let i=t.insert("g").attr("class","label").attr("style",n),a=ve(),s=a.htmlLabels??!0,l=await Fn(i,G2(ao(e)),{width:xa(e,a)+50,classes:"markdown-node-label",useHtmlLabels:s,style:n},a),u;if(s){let h=l.children[0],f=je(l);u=h.getBoundingClientRect(),f.attr("width",u.width),f.attr("height",u.height)}else{let h=l.children[0];for(let f of h.children)f.textContent=f.textContent.replaceAll(">",">").replaceAll("<","<"),n&&f.setAttribute("style",n);u=l.getBBox(),u.height+=6}return i.attr("transform",`translate(${-u.width/2},${-u.height/2+r})`),u.height}var Kse=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();jt();co();Ar();o(Xse,"requirementBox");o(Rh,"addText")});async function Qse(t,e,{config:r}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n||"";let a=10,s=e.width;e.width=(e.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await pt(t,e,ht(e)),f=e.padding||10,d="",p;"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(d=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));let m={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await Hk(p,"ticket"in e&&e.ticket||"",m):{label:g,bbox:y}=await Hk(l,"ticket"in e&&e.ticket||"",m);let{label:v,bbox:x}=await Hk(l,"assigned"in e&&e.assigned||"",m);e.width=s;let b=10,T=e?.width||0,E=Math.max(y.height,x.height)/2,w=Math.max(u.height+b*2,e?.height||0)+E,k=-T/2,S=-w/2;h.attr("transform","translate("+(f-T/2)+", "+(-E-u.height/2)+")"),g.attr("transform","translate("+(f-T/2)+", "+(-E+u.height/2)+")"),v.attr("transform","translate("+(f+T/2-x.width-2*a)+", "+(-E+u.height/2)+")");let A,{rx:L,ry:I}=e,{cssStyles:N}=e;if(e.look==="handDrawn"){let C=Je.svg(l),_=nt(e,{}),D=L||I?C.path(ho(k,S,T,w,L||0),_):C.rectangle(k,S,T,w,_);A=l.insert(()=>D,":first-child"),A.attr("class","basic label-container").attr("style",N||null)}else{A=l.insert("rect",":first-child"),A.attr("class","basic label-container __APA__").attr("style",i).attr("rx",L??5).attr("ry",I??5).attr("x",k).attr("y",S).attr("width",T).attr("height",w);let C="priority"in e&&e.priority;if(C){let _=l.append("line"),D=k+2,M=S+Math.floor((L??0)/2),R=S+w-Math.floor((L??0)/2);_.attr("x1",D).attr("y1",M).attr("x2",D).attr("y2",R).attr("stroke-width","4").attr("stroke",gze(C))}}return rt(e,A),e.height=w,e.intersect=function(C){return Qe.rect(e,C)},l}var gze,Zse=O(()=>{"use strict";$t();Yt();x0();Ut();Wt();gze=o(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(Qse,"kanbanItem")});async function Jse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await pt(t,e,ht(e)),u=a.width+10*s,h=a.height+8*s,f=.15*u,{cssStyles:d}=e,p=a.width+20,m=a.height+20,g=Math.max(u,p),y=Math.max(h,m);l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`);let v,x=`M0 0 + a${f},${f} 1 0,0 ${g*.25},${-1*y*.1} + a${f},${f} 1 0,0 ${g*.25},0 + a${f},${f} 1 0,0 ${g*.25},0 + a${f},${f} 1 0,0 ${g*.25},${y*.1} + + a${f},${f} 1 0,0 ${g*.15},${y*.33} + a${f*.8},${f*.8} 1 0,0 0,${y*.34} + a${f},${f} 1 0,0 ${-1*g*.15},${y*.33} + + a${f},${f} 1 0,0 ${-1*g*.25},${y*.15} + a${f},${f} 1 0,0 ${-1*g*.25},0 + a${f},${f} 1 0,0 ${-1*g*.25},0 + a${f},${f} 1 0,0 ${-1*g*.25},${-1*y*.15} + + a${f},${f} 1 0,0 ${-1*g*.1},${-1*y*.33} + a${f*.8},${f*.8} 1 0,0 0,${-1*y*.34} + a${f},${f} 1 0,0 ${g*.1},${-1*y*.33} + H0 V0 Z`;if(e.look==="handDrawn"){let b=Je.svg(i),T=nt(e,{}),E=b.path(x,T);v=i.insert(()=>E,":first-child"),v.attr("class","basic label-container").attr("style",Bn(d))}else v=i.insert("path",":first-child").attr("class","basic label-container").attr("style",n).attr("d",x);return v.attr("transform",`translate(${-g/2}, ${-y/2})`),rt(e,v),e.calcIntersect=function(b,T){return Qe.rect(b,T)},e.intersect=function(b){return K.info("Bang intersect",e,b),Qe.rect(e,b)},i}var eoe=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();ar();o(Jse,"bang")});async function toe(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await pt(t,e,ht(e)),u=a.width+2*s,h=a.height+2*s,f=.15*u,d=.25*u,p=.35*u,m=.2*u,{cssStyles:g}=e,y,v=`M0 0 + a${f},${f} 0 0,1 ${u*.25},${-1*u*.1} + a${p},${p} 1 0,1 ${u*.4},${-1*u*.1} + a${d},${d} 1 0,1 ${u*.35},${u*.2} + + a${f},${f} 1 0,1 ${u*.15},${h*.35} + a${m},${m} 1 0,1 ${-1*u*.15},${h*.65} + + a${d},${f} 1 0,1 ${-1*u*.25},${u*.15} + a${p},${p} 1 0,1 ${-1*u*.5},0 + a${f},${f} 1 0,1 ${-1*u*.25},${-1*u*.15} + + a${f},${f} 1 0,1 ${-1*u*.1},${-1*h*.35} + a${m},${m} 1 0,1 ${u*.1},${-1*h*.65} + H0 V0 Z`;if(e.look==="handDrawn"){let x=Je.svg(i),b=nt(e,{}),T=x.path(v,b);y=i.insert(()=>T,":first-child"),y.attr("class","basic label-container").attr("style",Bn(g))}else y=i.insert("path",":first-child").attr("class","basic label-container").attr("style",n).attr("d",v);return l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),y.attr("transform",`translate(${-u/2}, ${-h/2})`),rt(e,y),e.calcIntersect=function(x,b){return Qe.rect(x,b)},e.intersect=function(x){return K.info("Cloud intersect",e,x),Qe.rect(e,x)},i}var roe=O(()=>{"use strict";Wt();xt();ar();Yt();Ut();$t();o(toe,"cloud")});async function noe(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await pt(t,e,ht(e)),u=a.width+8*s,h=a.height+2*s,f=5,d=` + M${-u/2} ${h/2-f} + v${-h+2*f} + q0,-${f} ${f},-${f} + h${u-2*f} + q${f},0 ${f},${f} + v${h-2*f} + q0,${f} -${f},${f} + h${-u+2*f} + q-${f},0 -${f},-${f} + Z + `,p=i.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("style",n).attr("d",d);return i.append("line").attr("class","node-line-").attr("x1",-u/2).attr("y1",h/2).attr("x2",u/2).attr("y2",h/2),l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),i.append(()=>l.node()),rt(e,p),e.calcIntersect=function(m,g){return Qe.rect(m,g)},e.intersect=function(m){return Qe.rect(e,m)},i}var ioe=O(()=>{"use strict";Yt();Ut();$t();o(noe,"defaultMindmapNode")});async function aoe(t,e){let r={padding:e.padding??0};return nE(t,e,r)}var soe=O(()=>{"use strict";MM();o(aoe,"mindmapCircle")});function ooe(t){return t in OM}var yze,vze,OM,PM=O(()=>{"use strict";Vie();Wie();Yie();Xie();MM();Qie();Jie();tae();nae();aae();oae();cae();hae();dae();mae();yae();xae();Tae();kae();Sae();Aae();Dae();Lae();Mae();Oae();Bae();$ae();Gae();qae();Wae();Yae();Xae();Qae();Jae();tse();nse();ase();ose();cse();hse();dse();mse();yse();xse();Tse();kse();Sse();Ase();Dse();Lse();Mse();Ose();Bse();$se();Gse();qse();Use();jse();Kse();Zse();eoe();roe();ioe();soe();yze=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:fse},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:sse},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:pse},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:wse},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:sae},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:nE},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:Jse},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:toe},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:ese},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:bae},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:zae},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:Fae},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:Nse},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:Iae},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:uae},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:_se},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Hie},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:lse},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:bse},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:vse},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:gae},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:wae},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:Zie},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:eae},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:rae},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:Vae},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:Fse},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:vae},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:Rse},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:Uae},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:iae},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:lae},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:Pse},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:Vse},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:fae},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:Ise},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:pae},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:use},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:Kae},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:jae},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Uie},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Kie},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:Cse},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:Ese},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:zse},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:rse},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:Hae}],vze=o(()=>{let e=[...Object.entries({state:gse,choice:jie,note:Zae,rectWithTitle:ise,labelRect:Pae,iconSquare:Rae,iconCircle:Cae,icon:Eae,iconRounded:_ae,imageSquare:Nae,anchor:Gie,kanbanItem:Qse,mindmapCircle:aoe,defaultMindmapNode:noe,classBox:Yse,erBox:IM,requirementBox:Xse}),...yze.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(i=>[i,r.handler]))];return Object.fromEntries(e)},"generateShapeMap"),OM=vze();o(ooe,"isValidShape")});var xze,sE,loe=O(()=>{"use strict";Ar();ib();jt();xt();PM();ar();Ur();si();a0();S2();xze="flowchart-",sE=class{constructor(){this.vertexCounter=0;this.config=ve();this.vertices=new Map;this.edges=[];this.classes=new Map;this.subGraphs=[];this.subGraphLookup=new Map;this.tooltips=new Map;this.subCount=0;this.firstGraphFlag=!0;this.secCount=-1;this.posCrossRef=[];this.funs=[];this.setAccTitle=Lr;this.setAccDescription=Pr;this.setDiagramTitle=zr;this.getAccTitle=Or;this.getAccDescription=Br;this.getDiagramTitle=Fr;this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{o(this,"FlowDB")}sanitizeText(e){return st.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}lookUpDomId(e){for(let r of this.vertices.values())if(r.id===e)return r.domId;return e}addVertex(e,r,n,i,a,s,l={},u){if(!e||e.trim().length===0)return;let h;if(u!==void 0){let m;u.includes(` +`)?m=u+` +`:m=`{ +`+u+` +}`,h=Kf(m,{schema:Xf})}let f=this.edges.find(m=>m.id===e);if(f){let m=h;m?.animate!==void 0&&(f.animate=m.animate),m?.animation!==void 0&&(f.animation=m.animation),m?.curve!==void 0&&(f.interpolate=m.curve);return}let d,p=this.vertices.get(e);if(p===void 0&&(p={id:e,labelType:"text",domId:xze+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,p)),this.vertexCounter++,r!==void 0?(this.config=ve(),d=this.sanitizeText(r.text.trim()),p.labelType=r.type,d.startsWith('"')&&d.endsWith('"')&&(d=d.substring(1,d.length-1)),p.text=d):p.text===void 0&&(p.text=e),n!==void 0&&(p.type=n),i?.forEach(m=>{p.styles.push(m)}),a?.forEach(m=>{p.classes.push(m)}),s!==void 0&&(p.dir=s),p.props===void 0?p.props=l:l!==void 0&&Object.assign(p.props,l),h!==void 0){if(h.shape){if(h.shape!==h.shape.toLowerCase()||h.shape.includes("_"))throw new Error(`No such shape: ${h.shape}. Shape names should be lowercase.`);if(!ooe(h.shape))throw new Error(`No such shape: ${h.shape}.`);p.type=h?.shape}h?.label&&(p.text=h?.label,p.labelType=this.sanitizeNodeLabelType(h?.labelType)),h?.icon&&(p.icon=h?.icon,!h.label?.trim()&&p.text===e&&(p.text="")),h?.form&&(p.form=h?.form),h?.pos&&(p.pos=h?.pos),h?.img&&(p.img=h?.img,!h.label?.trim()&&p.text===e&&(p.text="")),h?.constraint&&(p.constraint=h.constraint),h.w&&(p.assetWidth=Number(h.w)),h.h&&(p.assetHeight=Number(h.h))}}addSingleLink(e,r,n,i){let l={start:e,end:r,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};K.info("abc78 Got edge...",l);let u=n.text;if(u!==void 0&&(l.text=this.sanitizeText(u.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=this.sanitizeNodeLabelType(u.type)),n!==void 0&&(l.type=n.type,l.stroke=n.stroke,l.length=n.length>10?10:n.length),i&&!this.edges.some(h=>h.id===i))l.id=i,l.isUserDefinedId=!0;else{let h=this.edges.filter(f=>f.start===l.start&&f.end===l.end);h.length===0?l.id=hu(l.start,l.end,{counter:0,prefix:"L"}):l.id=hu(l.start,l.end,{counter:h.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))K.info("Pushing edge..."),this.edges.push(l);else throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)}isLinkData(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,r,n){let i=this.isLinkData(n)?n.id.replace("@",""):void 0;K.info("addLink",e,r,i);for(let a of e)for(let s of r){let l=a===e[e.length-1],u=s===r[0];l&&u?this.addSingleLink(a,s,n,i):this.addSingleLink(a,s,n,void 0)}}updateLinkInterpolate(e,r){e.forEach(n=>{n==="default"?this.edges.defaultInterpolate=r:this.edges[n].interpolate=r})}updateLink(e,r){e.forEach(n=>{if(typeof n=="number"&&n>=this.edges.length)throw new Error(`The index ${n} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);n==="default"?this.edges.defaultStyle=r:(this.edges[n].style=r,(this.edges[n]?.style?.length??0)>0&&!this.edges[n]?.style?.some(i=>i?.startsWith("fill"))&&this.edges[n]?.style?.push("fill:none"))})}addClass(e,r){let n=r.join().replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(i=>{let a=this.classes.get(i);a===void 0&&(a={id:i,styles:[],textStyles:[]},this.classes.set(i,a)),n?.forEach(s=>{if(/color/.exec(s)){let l=s.replace("fill","bgFill");a.textStyles.push(l)}a.styles.push(s)})})}setDirection(e){this.direction=e.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,r){for(let n of e.split(",")){let i=this.vertices.get(n);i&&i.classes.push(r);let a=this.edges.find(l=>l.id===n);a&&a.classes.push(r);let s=this.subGraphLookup.get(n);s&&s.classes.push(r)}}setTooltip(e,r){if(r!==void 0){r=this.sanitizeText(r);for(let n of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(n):n,r)}}setClickFun(e,r,n){let i=this.lookUpDomId(e);if(ve().securityLevel!=="loose"||r===void 0)return;let a=[];if(typeof n=="string"){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l{let l=document.querySelector(`[id="${i}"]`);l!==null&&l.addEventListener("click",()=>{Xt.runFunc(r,...a)},!1)}))}setLink(e,r,n){e.split(",").forEach(i=>{let a=this.vertices.get(i);a!==void 0&&(a.link=Xt.formatUrl(r,this.config),a.linkTarget=n)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFun(i,r,n)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(r=>{r(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){let r=sk();je(e).select("svg").selectAll("g.node").on("mouseover",a=>{let s=je(a.currentTarget),l=s.attr("title");if(l===null)return;let u=a.currentTarget?.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.bottom+"px"),r.html(fl.sanitize(l)),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),je(a.currentTarget).classed("hover",!1)})}clear(e="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=e,this.config=ve(),_r()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,r,n){let i=e.text.trim(),a=n.text;e===n&&/\s/.exec(n.text)&&(i=void 0);let l=o(p=>{let m={boolean:{},number:{},string:{}},g=[],y;return{nodeList:p.filter(function(x){let b=typeof x;return x.stmt&&x.stmt==="dir"?(y=x.value,!1):x.trim()===""?!1:b in m?m[b].hasOwnProperty(x)?!1:m[b][x]=!0:g.includes(x)?!1:g.push(x)}),dir:y}},"uniq")(r.flat()),u=l.nodeList,h=l.dir,f=ve().flowchart??{};if(h=h??(f.inheritDir?this.getDirection()??ve().direction??void 0:void 0),this.version==="gen-1")for(let p=0;p2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=r,this.subGraphs[r].id===e)return{result:!0,count:0};let i=0,a=1;for(;i=0){let l=this.indexNodes2(e,s);if(l.result)return{result:!0,count:a+l.count};a=a+l.count}i=i+1}return{result:!1,count:a}}getDepthFirstPos(e){return this.posCrossRef[e]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return this.firstGraphFlag?(this.firstGraphFlag=!1,!0):!1}destructStartLink(e){let r=e.trim(),n="arrow_open";switch(r[0]){case"<":n="arrow_point",r=r.slice(1);break;case"x":n="arrow_cross",r=r.slice(1);break;case"o":n="arrow_circle",r=r.slice(1);break}let i="normal";return r.includes("=")&&(i="thick"),r.includes(".")&&(i="dotted"),{type:n,stroke:i}}countChar(e,r){let n=r.length,i=0;for(let a=0;a":i="arrow_point",r.startsWith("<")&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle",r.startsWith("o")&&(i="double_"+i,n=n.slice(1));break}let a="normal",s=n.length-1;n.startsWith("=")&&(a="thick"),n.startsWith("~")&&(a="invisible");let l=this.countChar(".",n);return l&&(a="dotted",s=l),{type:i,stroke:a,length:s}}destructLink(e,r){let n=this.destructEndLink(e),i;if(r){if(i=this.destructStartLink(r),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if(i.type==="arrow_open")i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return i.type==="double_arrow"&&(i.type="double_arrow_point"),i.length=n.length,i}return n}exists(e,r){for(let n of e)if(n.nodes.includes(r))return!0;return!1}makeUniq(e,r){let n=[];return e.nodes.forEach((i,a)=>{this.exists(r,i)||n.push(e.nodes[a])}),{nodes:n}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,r){return e.find(n=>n.id===r)}destructEdgeType(e){let r="none",n="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":n=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":r=e.replace("double_",""),n=r;break}return{arrowTypeStart:r,arrowTypeEnd:n}}addNodeFromVertex(e,r,n,i,a,s){let l=n.get(e.id),u=i.get(e.id)??!1,h=this.findNode(r,e.id);if(h)h.cssStyles=e.styles,h.cssCompiledStyles=this.getCompiledStyles(e.classes),h.cssClasses=e.classes.join(" ");else{let f={id:e.id,label:e.text,labelType:e.labelType,labelStyle:"",parentId:l,padding:a.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:s,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};u?r.push({...f,isGroup:!0,shape:"rect"}):r.push({...f,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}getData(){let e=ve(),r=[],n=[],i=this.getSubGraphs(),a=new Map,s=new Map;for(let h=i.length-1;h>=0;h--){let f=i[h];f.nodes.length>0&&s.set(f.id,!0);for(let d of f.nodes)a.set(d,f.id)}for(let h=i.length-1;h>=0;h--){let f=i[h];r.push({id:f.id,label:f.title,labelStyle:"",labelType:f.labelType,parentId:a.get(f.id),padding:8,cssCompiledStyles:this.getCompiledStyles(f.classes),cssClasses:f.classes.join(" "),shape:"rect",dir:f.dir,isGroup:!0,look:e.look})}this.getVertices().forEach(h=>{this.addNodeFromVertex(h,r,a,s,e,e.look||"classic")});let u=this.getEdges();return u.forEach((h,f)=>{let{arrowTypeStart:d,arrowTypeEnd:p}=this.destructEdgeType(h.type),m=[...u.defaultStyle??[]];h.style&&m.push(...h.style);let g={id:hu(h.start,h.end,{counter:f,prefix:"L"},h.id),isUserDefinedId:h.isUserDefinedId,start:h.start,end:h.end,type:h.type??"normal",label:h.text,labelType:h.labelType,labelpos:"c",thickness:h.stroke,minlen:h.length,classes:h?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":d,arrowTypeEnd:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":p,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(h.classes),labelStyle:m,style:m,pattern:h.stroke,look:e.look,animate:h.animate,animation:h.animation,curve:h.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};n.push(g)}),{nodes:r,edges:n,other:{},config:e}}defaultConfig(){return Fw.flowchart}}});var Sl,b0=O(()=>{"use strict";Ar();Sl=o((t,e)=>{let r;return e==="sandbox"&&(r=je("#i"+t)),(e==="sandbox"?je(r.nodes()[0].contentDocument.body):je("body")).select(`[id="${t}"]`)},"getDiagramElement")});var Lh,gb=O(()=>{"use strict";Lh=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});var coe,bze,Tze,wze,kze,Eze,Sze,uoe,g1,hoe,oE=O(()=>{"use strict";jt();$r();xt();gb();Ar();Wt();co();mM();iE();x0();Ut();coe=o(async(t,e)=>{K.info("Creating subgraph rect for ",e.id,e);let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Ze(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=Sr(r),m=d.insert("g").attr("class","cluster-label "),g;e.labelType==="markdown"?g=await Fn(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}):g=await yc(m,e.label,e.labelStyle||"",!1,!0);let y=g.getBBox();if(Sr(r)){let S=g.children[0],A=je(g);y=S.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,T=e.y-x/2;K.trace("Data ",e,JSON.stringify(e));let E;if(e.look==="handDrawn"){let S=Je.svg(d),A=nt(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),L=S.path(ho(b,T,v,x,0),A);E=d.insert(()=>(K.debug("Rough node insert CXC",L),L),":first-child"),E.select("path:nth-child(2)").attr("style",h.join(";")),E.select("path").attr("style",f.join(";").replace("fill","stroke"))}else E=d.insert("rect",":first-child"),E.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:w}=Lh(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+w})`),l){let S=m.select("span");S&&S.attr("style",l)}let k=E.node().getBBox();return e.offsetX=0,e.width=k.width,e.height=k.height,e.offsetY=y.height-e.padding/2,e.intersect=function(S){return Qf(e,S)},{cluster:d,labelBBox:y}},"rect"),bze=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Qf(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),Tze=o(async(t,e)=>{let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=await yc(d,e.label,e.labelStyle,void 0,!0),g=m.getBBox();if(Sr(r)){let L=m.children[0],I=je(m);g=L.getBoundingClientRect(),I.attr("width",g.width),I.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,T=e.height+y-g.height-6,E=e.x-x/2,w=e.y-b/2;e.width=x;let k=e.y-e.height/2-v+g.height+2,S;if(e.look==="handDrawn"){let L=e.cssClasses.includes("statediagram-cluster-alt"),I=Je.svg(h),N=e.rx||e.ry?I.path(ho(E,w,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):I.rectangle(E,w,x,b,{seed:i});S=h.insert(()=>N,":first-child");let C=I.rectangle(E,k,x,T,{fill:L?a:s,fillStyle:L?"hachure":"solid",stroke:u,seed:i});S=h.insert(()=>N,":first-child"),p=h.insert(()=>C)}else S=f.insert("rect",":first-child"),S.attr("class","outer").attr("x",E).attr("y",w).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",E).attr("y",k).attr("width",x).attr("height",T);d.attr("transform",`translate(${e.x-g.width/2}, ${w+1-(Sr(r)?0:3)})`);let A=S.node().getBBox();return e.height=A.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(L){return Qf(e,L)},{cluster:h,labelBBox:g}},"roundedWithTitle"),wze=o(async(t,e)=>{K.info("Creating subgraph rect for ",e.id,e);let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Ze(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=Sr(r),m=d.insert("g").attr("class","cluster-label "),g=await Fn(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}),y=g.getBBox();if(Sr(r)){let S=g.children[0],A=je(g);y=S.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,T=e.y-x/2;K.trace("Data ",e,JSON.stringify(e));let E;if(e.look==="handDrawn"){let S=Je.svg(d),A=nt(e,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:i}),L=S.path(ho(b,T,v,x,e.rx),A);E=d.insert(()=>(K.debug("Rough node insert CXC",L),L),":first-child"),E.select("path:nth-child(2)").attr("style",h.join(";")),E.select("path").attr("style",f.join(";").replace("fill","stroke"))}else E=d.insert("rect",":first-child"),E.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:w}=Lh(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+w})`),l){let S=m.select("span");S&&S.attr("style",l)}let k=E.node().getBBox();return e.offsetX=0,e.width=k.width,e.height=k.height,e.offsetY=y.height-e.padding/2,e.intersect=function(S){return Qf(e,S)},{cluster:d,labelBBox:y}},"kanbanSection"),kze=o((t,e)=>{let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Je.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Qf(e,y)},{cluster:s,labelBBox:{}}},"divider"),Eze=coe,Sze={rect:coe,squareRect:Eze,roundedWithTitle:Tze,noteGroup:bze,divider:kze,kanbanSection:wze},uoe=new Map,g1=o(async(t,e)=>{let r=e.shape||"rect",n=await Sze[r](t,e);return uoe.set(e.id,n),n},"insertCluster"),hoe=o(()=>{uoe=new Map},"clear")});var Cl,BM=O(()=>{"use strict";Cl=o((t,e)=>{if(e)return"translate("+-t.width/2+", "+-t.height/2+")";let r=t.x??0,n=t.y??0;return"translate("+-(r+t.width/2)+", "+-(n+t.height/2)+")"},"computeLabelTransform")});function lE(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=li(t),e=li(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var Ba,FM,li,cE,$M=O(()=>{"use strict";Ba={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4},FM={arrow_point:9,arrow_cross:12.5,arrow_circle:12.5};o(lE,"calculateDeltaAndAngle");li=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),cE=o(t=>({x:o(function(e,r,n){let i=0,a=li(n[0]).x=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Ba,t.arrowTypeEnd)){let{angle:m,deltaX:g}=lE(n[n.length-1],n[n.length-2]);i=Ba[t.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(li(e).x-li(n[n.length-1]).x),l=Math.abs(li(e).y-li(n[n.length-1]).y),u=Math.abs(li(e).x-li(n[0]).x),h=Math.abs(li(e).y-li(n[0]).y),f=Ba[t.arrowTypeStart],d=Ba[t.arrowTypeEnd],p=1;if(s0&&l0&&h=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Ba,t.arrowTypeEnd)){let{angle:m,deltaY:g}=lE(n[n.length-1],n[n.length-2]);i=Ba[t.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(li(e).y-li(n[n.length-1]).y),l=Math.abs(li(e).x-li(n[n.length-1]).x),u=Math.abs(li(e).y-li(n[0]).y),h=Math.abs(li(e).x-li(n[0]).x),f=Ba[t.arrowTypeStart],d=Ba[t.arrowTypeEnd],p=1;if(s0&&l0&&h{"use strict";xt();doe=o((t,e,r,n,i,a)=>{e.arrowTypeStart&&foe(t,"start",e.arrowTypeStart,r,n,i,a),e.arrowTypeEnd&&foe(t,"end",e.arrowTypeEnd,r,n,i,a)},"addEdgeMarkers"),Cze={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},foe=o((t,e,r,n,i,a,s)=>{let l=Cze[r];if(!l){K.warn(`Unknown arrow type: ${r}`);return}let u=l.type,f=`${i}_${a}-${u}${e==="start"?"Start":"End"}`;if(s&&s.trim()!==""){let d=s.replace(/[^\dA-Za-z]/g,"_"),p=`${f}_${d}`;if(!document.getElementById(p)){let m=document.getElementById(f);if(m){let g=m.cloneNode(!0);g.id=p,g.querySelectorAll("path, circle, line").forEach(v=>{v.setAttribute("stroke",s),l.fill&&v.setAttribute("fill",s)}),m.parentNode?.appendChild(g)}}t.attr(`marker-${e}`,`url(${n}#${p})`)}else t.attr(`marker-${e}`,`url(${n}#${f})`)},"addEdgeMarker")});function uE(t,e){Sr(ve())&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function Rze(t){let e=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}function Mze(t,e){if(t.length<2)return"";let r="",n=t.length,i=1e-5;for(let a=0;a({...i}));if(t.length>=2&&Ba[e.arrowTypeStart]){let i=Ba[e.arrowTypeStart],a=t[0],s=t[1],{angle:l}=yoe(a,s),u=i*Math.cos(l),h=i*Math.sin(l);r[0].x=a.x+u,r[0].y=a.y+h}let n=t.length;if(n>=2&&Ba[e.arrowTypeEnd]){let i=Ba[e.arrowTypeEnd],a=t[n-1],s=t[n-2],{angle:l}=yoe(s,a),u=i*Math.cos(l),h=i*Math.sin(l);r[n-1].x=a.x-u,r[n-1].y=a.y-h}return r}var Aze,hE,Fa,voe,yb,fE,dE,_ze,Dze,moe,goe,Lze,Nze,pE,zM=O(()=>{"use strict";jt();$r();xt();co();BM();ar();$M();gb();Ar();Wt();iE();poe();Ut();Aze=o(t=>typeof t=="string"?t:ve()?.flowchart?.curve,"resolveEdgeCurveType"),hE=new Map,Fa=new Map,voe=o(()=>{hE.clear(),Fa.clear()},"clear"),yb=o(t=>t?typeof t=="string"?t:t.reduce((e,r)=>e+";"+r,""):"","getLabelStyles"),fE=o(async(t,e)=>{let r=ve(),n=Sr(r),{labelStyles:i}=Ze(e);e.labelStyle=i;let a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label").attr("data-id",e.id),l=e.labelType==="markdown",h=await Fn(t,e.label,{style:yb(e.labelStyle),useHtmlLabels:n,addSvgBackground:!0,isNode:!1,markdown:l,width:l?void 0:void 0},r);s.node().appendChild(h),K.info("abc82",e,e.labelType);let f=h.getBBox(),d=f;if(n){let m=h.children[0],g=je(h);f=m.getBoundingClientRect(),d=f,g.attr("width",f.width),g.attr("height",f.height)}else{let m=je(h).select("text").node();m&&typeof m.getBBox=="function"&&(d=m.getBBox())}s.attr("transform",Cl(d,n)),hE.set(e.id,a),e.width=f.width,e.height=f.height;let p;if(e.startLabelLeft){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.startLabelLeft,yb(e.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).startLeft=m,uE(p,e.startLabelLeft)}if(e.startLabelRight){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.startLabelRight,yb(e.labelStyle)||"",!1,!1);p=y,g.node().appendChild(y);let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).startRight=m,uE(p,e.startLabelRight)}if(e.endLabelLeft){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.endLabelLeft,yb(e.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),m.node().appendChild(y),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).endLeft=m,uE(p,e.endLabelLeft)}if(e.endLabelRight){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.endLabelRight,yb(e.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),m.node().appendChild(y),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).endRight=m,uE(p,e.endLabelRight)}return h},"insertEdgeLabel");o(uE,"setTerminalWidth");dE=o((t,e)=>{K.debug("Moving label abc88 ",t.id,t.label,hE.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=ve(),{subGraphTitleTotalMargin:i}=Lh(n);if(t.label){let a=hE.get(t.id),s=t.x,l=t.y;if(r){let u=Xt.calcLabelPosition(r);K.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=Fa.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=Fa.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=Fa.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=Fa.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),_ze=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),Dze=o((t,e,r)=>{K.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{K.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(K.info("abc88 checking point",a,e),!_ze(e,a)&&!i){let s=Dze(e,n,a);K.debug("abc88 inside",a,n,s),K.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?K.warn("abc88 no intersect",s,r):r.push(s),i=!0}else K.warn("abc88 outside",a,n),n=a,i||r.push(a)}),K.debug("returning points",r),r},"cutPathAtIntersect");o(Rze,"extractCornerPoints");goe=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),Lze=o(function(t){let{cornerPointPositions:e}=Rze(t),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){K.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else K.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),Nze=o((t,e,r)=>{let n=t-e-r,i=2,a=2,s=i+a,l=Math.floor(n/s),u=Array(l).fill(`${i} ${a}`).join(" ");return`0 ${e} ${u} ${r}`},"generateDashArray"),pE=o(function(t,e,r,n,i,a,s,l=!1){let{handDrawnSeed:u}=ve(),h=e.points,f=!1,d=i;var p=a;let m=[];for(let R in e.cssCompiledStyles)ub(R)||m.push(e.cssCompiledStyles[R]);K.debug("UIO intersect check",e.points,p.x,d.x),p.intersect&&d.intersect&&!l&&(h=h.slice(1,e.points.length-1),h.unshift(d.intersect(h[0])),K.debug("Last point UIO",e.start,"-->",e.end,h[h.length-1],p,p.intersect(h[h.length-1])),h.push(p.intersect(h[h.length-1])));let g=btoa(JSON.stringify(h));e.toCluster&&(K.info("to cluster abc88",r.get(e.toCluster)),h=moe(e.points,r.get(e.toCluster).node),f=!0),e.fromCluster&&(K.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(h,null,2)),h=moe(h.reverse(),r.get(e.fromCluster).node).reverse(),f=!0);let y=h.filter(R=>!Number.isNaN(R.y)),v=Aze(e.curve);v!=="rounded"&&(y=Lze(y));let x=au;switch(v){case"linear":x=au;break;case"basis":x=fc;break;case"cardinal":x=Rx;break;case"bumpX":x=Sx;break;case"bumpY":x=Cx;break;case"catmullRom":x=Mx;break;case"monotoneX":x=Ix;break;case"monotoneY":x=Ox;break;case"natural":x=qg;break;case"step":x=Ug;break;case"stepAfter":x=Bx;break;case"stepBefore":x=Px;break;case"rounded":x=au;break;default:x=fc}let{x:b,y:T}=cE(e),E=hc().x(b).y(T).curve(x),w;switch(e.thickness){case"normal":w="edge-thickness-normal";break;case"thick":w="edge-thickness-thick";break;case"invisible":w="edge-thickness-invisible";break;default:w="edge-thickness-normal"}switch(e.pattern){case"solid":w+=" edge-pattern-solid";break;case"dotted":w+=" edge-pattern-dotted";break;case"dashed":w+=" edge-pattern-dashed";break;default:w+=" edge-pattern-solid"}let k,S=v==="rounded"?Mze(Ize(y,e),5):E(y),A=Array.isArray(e.style)?e.style:[e.style],L=A.find(R=>R?.startsWith("stroke:")),I="";e.animate&&(I="edge-animation-fast"),e.animation&&(I="edge-animation-"+e.animation);let N=!1;if(e.look==="handDrawn"){let R=Je.svg(t);Object.assign([],y);let P=R.path(S,{roughness:.3,seed:u});w+=" transition",k=je(P).select("path").attr("id",e.id).attr("class"," "+w+(e.classes?" "+e.classes:"")+(I?" "+I:"")).attr("style",A?A.reduce((F,G)=>F+";"+G,""):"");let B=k.attr("d");k.attr("d",B),t.node().appendChild(k.node())}else{let R=m.join(";"),P=A?A.reduce((X,Q)=>X+Q+";",""):"",B=(R?R+";"+P+";":P)+";"+(A?A.reduce((X,Q)=>X+";"+Q,""):"");k=t.append("path").attr("d",S).attr("id",e.id).attr("class"," "+w+(e.classes?" "+e.classes:"")+(I?" "+I:"")).attr("style",B),L=B.match(/stroke:([^;]+)/)?.[1],N=e.animate===!0||!!e.animation||R.includes("animation");let F=k.node(),G=typeof F.getTotalLength=="function"?F.getTotalLength():0,$=FM[e.arrowTypeStart]||0,V=FM[e.arrowTypeEnd]||0;if(e.look==="neo"&&!N){let Q=`stroke-dasharray: ${e.pattern==="dotted"||e.pattern==="dashed"?Nze(G,$,V):`0 ${$} ${G-$-V} ${V}`}; stroke-dashoffset: 0;`;k.attr("style",Q+k.attr("style"))}}k.attr("data-edge",!0),k.attr("data-et","edge"),k.attr("data-id",e.id),k.attr("data-points",g),e.showPoints&&y.forEach(R=>{t.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",R.x).attr("cy",R.y)});let C="";(ve().flowchart.arrowMarkerAbsolute||ve().state.arrowMarkerAbsolute)&&(C=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,C=C.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),K.info("arrowTypeStart",e.arrowTypeStart),K.info("arrowTypeEnd",e.arrowTypeEnd),doe(k,e,C,s,n,L);let _=Math.floor(h.length/2),D=h[_];Xt.isLabelCoordinateInPath(D,k.attr("d"))||(f=!0);let M={};return f&&(M.updatedPath=h),M.originalPath=e.points,M},"insertEdge");o(Mze,"generateRoundedPath");o(yoe,"calculateDeltaAndAngle");o(Ize,"applyMarkerOffsetsToPoints")});var Oze,Pze,Bze,Fze,$ze,zze,Gze,Vze,qze,Uze,Wze,Hze,Yze,jze,Xze,Kze,Qze,mE,GM=O(()=>{"use strict";xt();Oze=o((t,e,r,n)=>{e.forEach(i=>{Qze[i](t,r,n)})},"insertMarkers"),Pze=o((t,e,r)=>{K.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Bze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Fze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),$ze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),zze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Gze=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),Vze=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),qze=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),Uze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),Wze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),Hze=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("d","M9,0 L9,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),Yze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),jze=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),Xze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 + L20,10 + M20,10 + L0,20`)},"requirement_arrow"),Kze=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),Qze={extension:Pze,composition:Bze,aggregation:Fze,dependency:$ze,lollipop:zze,point:Gze,circle:Vze,cross:qze,barb:Uze,only_one:Wze,zero_or_one:Hze,one_or_more:Yze,zero_or_more:jze,requirement_arrow:Xze,requirement_contains:Kze},mE=Oze});async function y1(t,e,r){let n,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?OM[e.shape]:void 0;if(!a)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let s;r.config.securityLevel==="sandbox"?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s??null),i=await a(n,e,r)}else i=await a(t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),gE.set(e.id,n),e.haveCallback&&n.attr("class",n.attr("class")+" clickable"),n}var gE,xoe,boe,vb,yE=O(()=>{"use strict";xt();PM();gE=new Map;o(y1,"insertNode");xoe=o((t,e)=>{gE.set(e.id,t)},"setNodeElem"),boe=o(()=>{gE.clear()},"clear"),vb=o(t=>{let e=gE.get(t.id);K.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var Toe,woe=O(()=>{"use strict";$r();Ur();xt();oE();zM();GM();yE();$t();ar();Toe={common:st,getConfig:Zt,insertCluster:g1,insertEdge:pE,insertEdgeLabel:fE,insertMarkers:mE,insertNode:y1,interpolateToCurve:_N,labelHelper:pt,log:K,positionEdgeLabel:dE}});function Jze(t){return typeof t=="symbol"||wi(t)&&Pa(t)==Zze}var Zze,Ho,T0=O(()=>{"use strict";Th();xl();Zze="[object Symbol]";o(Jze,"isSymbol");Ho=Jze});function eGe(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r{"use strict";o(eGe,"arrayMap");fo=eGe});function Soe(t){if(typeof t=="string")return t;if(zt(t))return fo(t,Soe)+"";if(Ho(t))return Eoe?Eoe.call(t):"";var e=t+"";return e=="0"&&1/t==-tGe?"-0":e}var tGe,koe,Eoe,Coe,Aoe=O(()=>{"use strict";s0();w0();oi();T0();tGe=1/0,koe=ya?ya.prototype:void 0,Eoe=koe?koe.toString:void 0;o(Soe,"baseToString");Coe=Soe});function nGe(t){for(var e=t.length;e--&&rGe.test(t.charAt(e)););return e}var rGe,_oe,Doe=O(()=>{"use strict";rGe=/\s/;o(nGe,"trimmedEndIndex");_oe=nGe});function aGe(t){return t&&t.slice(0,_oe(t)+1).replace(iGe,"")}var iGe,Roe,Loe=O(()=>{"use strict";Doe();iGe=/^\s+/;o(aGe,"baseTrim");Roe=aGe});function uGe(t){if(typeof t=="number")return t;if(Ho(t))return Noe;if(On(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=On(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Roe(t);var r=oGe.test(t);return r||lGe.test(t)?cGe(t.slice(2),r?2:8):sGe.test(t)?Noe:+t}var Noe,sGe,oGe,lGe,cGe,Moe,Ioe=O(()=>{"use strict";Loe();Vo();T0();Noe=NaN,sGe=/^[-+]0x[0-9a-f]+$/i,oGe=/^0b[01]+$/i,lGe=/^0o[0-7]+$/i,cGe=parseInt;o(uGe,"toNumber");Moe=uGe});function fGe(t){if(!t)return t===0?t:0;if(t=Moe(t),t===Ooe||t===-Ooe){var e=t<0?-1:1;return e*hGe}return t===t?t:0}var Ooe,hGe,v1,VM=O(()=>{"use strict";Ioe();Ooe=1/0,hGe=17976931348623157e292;o(fGe,"toFinite");v1=fGe});function dGe(t){var e=v1(t),r=e%1;return e===e?r?e-r:e:0}var mu,x1=O(()=>{"use strict";VM();o(dGe,"toInteger");mu=dGe});var pGe,vE,Poe=O(()=>{"use strict";Ff();yl();pGe=ro(Ri,"WeakMap"),vE=pGe});function mGe(){}var ki,qM=O(()=>{"use strict";o(mGe,"noop");ki=mGe});function gGe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(gGe,"arrayEach");xE=gGe});function yGe(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(yGe,"baseFindIndex");bE=yGe});function vGe(t){return t!==t}var Boe,Foe=O(()=>{"use strict";o(vGe,"baseIsNaN");Boe=vGe});function xGe(t,e,r){for(var n=r-1,i=t.length;++n{"use strict";o(xGe,"strictIndexOf");$oe=xGe});function bGe(t,e,r){return e===e?$oe(t,e,r):bE(t,Boe,r)}var b1,TE=O(()=>{"use strict";WM();Foe();zoe();o(bGe,"baseIndexOf");b1=bGe});function TGe(t,e){var r=t==null?0:t.length;return!!r&&b1(t,e,0)>-1}var wE,HM=O(()=>{"use strict";TE();o(TGe,"arrayIncludes");wE=TGe});var wGe,Goe,Voe=O(()=>{"use strict";mN();wGe=yk(Object.keys,Object),Goe=wGe});function SGe(t){if(!lu(t))return Goe(t);var e=[];for(var r in Object(t))EGe.call(t,r)&&r!="constructor"&&e.push(r);return e}var kGe,EGe,T1,kE=O(()=>{"use strict";n1();Voe();kGe=Object.prototype,EGe=kGe.hasOwnProperty;o(SGe,"baseKeys");T1=SGe});function CGe(t){return Li(t)?wk(t):T1(t)}var nn,gu=O(()=>{"use strict";bN();kE();bl();o(CGe,"keys");nn=CGe});var AGe,_Ge,DGe,$a,qoe=O(()=>{"use strict";o1();h0();EN();bl();n1();gu();AGe=Object.prototype,_Ge=AGe.hasOwnProperty,DGe=Sk(function(t,e){if(lu(e)||Li(e)){kl(e,nn(e),t);return}for(var r in e)_Ge.call(e,r)&&cu(t,r,e[r])}),$a=DGe});function NGe(t,e){if(zt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Ho(t)?!0:LGe.test(t)||!RGe.test(t)||e!=null&&t in Object(e)}var RGe,LGe,w1,EE=O(()=>{"use strict";oi();T0();RGe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,LGe=/^\w*$/;o(NGe,"isKey");w1=NGe});function IGe(t){var e=Xg(t,function(n){return r.size===MGe&&r.clear(),n}),r=e.cache;return e}var MGe,Uoe,Woe=O(()=>{"use strict";lN();MGe=500;o(IGe,"memoizeCapped");Uoe=IGe});var OGe,PGe,BGe,Hoe,Yoe=O(()=>{"use strict";Woe();OGe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,PGe=/\\(\\)?/g,BGe=Uoe(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(OGe,function(r,n,i,a){e.push(i?a.replace(PGe,"$1"):n||r)}),e}),Hoe=BGe});function FGe(t){return t==null?"":Coe(t)}var SE,YM=O(()=>{"use strict";Aoe();o(FGe,"toString");SE=FGe});function $Ge(t,e){return zt(t)?t:w1(t,e)?[t]:Hoe(SE(t))}var td,xb=O(()=>{"use strict";oi();EE();Yoe();YM();o($Ge,"castPath");td=$Ge});function GGe(t){if(typeof t=="string"||Ho(t))return t;var e=t+"";return e=="0"&&1/t==-zGe?"-0":e}var zGe,yu,k1=O(()=>{"use strict";T0();zGe=1/0;o(GGe,"toKey");yu=GGe});function VGe(t,e){e=td(e,t);for(var r=0,n=e.length;t!=null&&r{"use strict";xb();k1();o(VGe,"baseGet");rd=VGe});function qGe(t,e,r){var n=t==null?void 0:rd(t,e);return n===void 0?r:n}var joe,Xoe=O(()=>{"use strict";bb();o(qGe,"get");joe=qGe});function UGe(t,e){for(var r=-1,n=e.length,i=t.length;++r{"use strict";o(UGe,"arrayPush");E1=UGe});function WGe(t){return zt(t)||pc(t)||!!(Koe&&t&&t[Koe])}var Koe,Qoe,Zoe=O(()=>{"use strict";s0();i1();oi();Koe=ya?ya.isConcatSpreadable:void 0;o(WGe,"isFlattenable");Qoe=WGe});function Joe(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=Qoe),i||(i=[]);++a0&&r(l)?e>1?Joe(l,e-1,r,n,i):E1(i,l):n||(i[i.length]=l)}return i}var vu,S1=O(()=>{"use strict";CE();Zoe();o(Joe,"baseFlatten");vu=Joe});function HGe(t){var e=t==null?0:t.length;return e?vu(t,1):[]}var fn,AE=O(()=>{"use strict";S1();o(HGe,"flatten");fn=HGe});function YGe(t){return Ek(kk(t,void 0,fn),t+"")}var ele,tle=O(()=>{"use strict";AE();TN();kN();o(YGe,"flatRest");ele=YGe});function jGe(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n{"use strict";o(jGe,"baseSlice");_E=jGe});function nVe(t){return rVe.test(t)}var XGe,KGe,QGe,ZGe,JGe,eVe,tVe,rVe,rle,nle=O(()=>{"use strict";XGe="\\ud800-\\udfff",KGe="\\u0300-\\u036f",QGe="\\ufe20-\\ufe2f",ZGe="\\u20d0-\\u20ff",JGe=KGe+QGe+ZGe,eVe="\\ufe0e\\ufe0f",tVe="\\u200d",rVe=RegExp("["+tVe+XGe+JGe+eVe+"]");o(nVe,"hasUnicode");rle=nVe});function iVe(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i{"use strict";o(iVe,"arrayReduce");ile=iVe});function aVe(t,e){return t&&kl(e,nn(e),t)}var sle,ole=O(()=>{"use strict";h0();gu();o(aVe,"baseAssign");sle=aVe});function sVe(t,e){return t&&kl(e,no(e),t)}var lle,cle=O(()=>{"use strict";h0();Wf();o(sVe,"baseAssignIn");lle=sVe});function oVe(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r{"use strict";o(oVe,"arrayFilter");C1=oVe});function lVe(){return[]}var RE,XM=O(()=>{"use strict";o(lVe,"stubArray");RE=lVe});var cVe,uVe,ule,hVe,A1,LE=O(()=>{"use strict";DE();XM();cVe=Object.prototype,uVe=cVe.propertyIsEnumerable,ule=Object.getOwnPropertySymbols,hVe=ule?function(t){return t==null?[]:(t=Object(t),C1(ule(t),function(e){return uVe.call(t,e)}))}:RE,A1=hVe});function fVe(t,e){return kl(t,A1(t),e)}var hle,fle=O(()=>{"use strict";h0();LE();o(fVe,"copySymbols");hle=fVe});var dVe,pVe,NE,KM=O(()=>{"use strict";CE();vk();LE();XM();dVe=Object.getOwnPropertySymbols,pVe=dVe?function(t){for(var e=[];t;)E1(e,A1(t)),t=r1(t);return e}:RE,NE=pVe});function mVe(t,e){return kl(t,NE(t),e)}var dle,ple=O(()=>{"use strict";h0();KM();o(mVe,"copySymbolsIn");dle=mVe});function gVe(t,e,r){var n=e(t);return zt(t)?n:E1(n,r(t))}var ME,QM=O(()=>{"use strict";CE();oi();o(gVe,"baseGetAllKeys");ME=gVe});function yVe(t){return ME(t,nn,A1)}var Tb,ZM=O(()=>{"use strict";QM();LE();gu();o(yVe,"getAllKeys");Tb=yVe});function vVe(t){return ME(t,no,NE)}var IE,JM=O(()=>{"use strict";QM();KM();Wf();o(vVe,"getAllKeysIn");IE=vVe});var xVe,OE,mle=O(()=>{"use strict";Ff();yl();xVe=ro(Ri,"DataView"),OE=xVe});var bVe,PE,gle=O(()=>{"use strict";Ff();yl();bVe=ro(Ri,"Promise"),PE=bVe});var TVe,nd,eI=O(()=>{"use strict";Ff();yl();TVe=ro(Ri,"Set"),nd=TVe});var yle,wVe,vle,xle,ble,Tle,kVe,EVe,SVe,CVe,AVe,k0,Yo,E0=O(()=>{"use strict";mle();uk();gle();eI();Poe();Th();aN();yle="[object Map]",wVe="[object Object]",vle="[object Promise]",xle="[object Set]",ble="[object WeakMap]",Tle="[object DataView]",kVe=wh(OE),EVe=wh(Gf),SVe=wh(PE),CVe=wh(nd),AVe=wh(vE),k0=Pa;(OE&&k0(new OE(new ArrayBuffer(1)))!=Tle||Gf&&k0(new Gf)!=yle||PE&&k0(PE.resolve())!=vle||nd&&k0(new nd)!=xle||vE&&k0(new vE)!=ble)&&(k0=o(function(t){var e=Pa(t),r=e==wVe?t.constructor:void 0,n=r?wh(r):"";if(n)switch(n){case kVe:return Tle;case EVe:return yle;case SVe:return vle;case CVe:return xle;case AVe:return ble}return e},"getTag"));Yo=k0});function RVe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&DVe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var _Ve,DVe,wle,kle=O(()=>{"use strict";_Ve=Object.prototype,DVe=_Ve.hasOwnProperty;o(RVe,"initCloneArray");wle=RVe});function LVe(t,e){var r=e?t1(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var Ele,Sle=O(()=>{"use strict";pk();o(LVe,"cloneDataView");Ele=LVe});function MVe(t){var e=new t.constructor(t.source,NVe.exec(t));return e.lastIndex=t.lastIndex,e}var NVe,Cle,Ale=O(()=>{"use strict";NVe=/\w*$/;o(MVe,"cloneRegExp");Cle=MVe});function IVe(t){return Dle?Object(Dle.call(t)):{}}var _le,Dle,Rle,Lle=O(()=>{"use strict";s0();_le=ya?ya.prototype:void 0,Dle=_le?_le.valueOf:void 0;o(IVe,"cloneSymbol");Rle=IVe});function eqe(t,e,r){var n=t.constructor;switch(e){case qVe:return t1(t);case OVe:case PVe:return new n(+t);case UVe:return Ele(t,r);case WVe:case HVe:case YVe:case jVe:case XVe:case KVe:case QVe:case ZVe:case JVe:return mk(t,r);case BVe:return new n;case FVe:case GVe:return new n(t);case $Ve:return Cle(t);case zVe:return new n;case VVe:return Rle(t)}}var OVe,PVe,BVe,FVe,$Ve,zVe,GVe,VVe,qVe,UVe,WVe,HVe,YVe,jVe,XVe,KVe,QVe,ZVe,JVe,Nle,Mle=O(()=>{"use strict";pk();Sle();Ale();Lle();dN();OVe="[object Boolean]",PVe="[object Date]",BVe="[object Map]",FVe="[object Number]",$Ve="[object RegExp]",zVe="[object Set]",GVe="[object String]",VVe="[object Symbol]",qVe="[object ArrayBuffer]",UVe="[object DataView]",WVe="[object Float32Array]",HVe="[object Float64Array]",YVe="[object Int8Array]",jVe="[object Int16Array]",XVe="[object Int32Array]",KVe="[object Uint8Array]",QVe="[object Uint8ClampedArray]",ZVe="[object Uint16Array]",JVe="[object Uint32Array]";o(eqe,"initCloneByTag");Nle=eqe});function rqe(t){return wi(t)&&Yo(t)==tqe}var tqe,Ile,Ole=O(()=>{"use strict";E0();xl();tqe="[object Map]";o(rqe,"baseIsMap");Ile=rqe});var Ple,nqe,Ble,Fle=O(()=>{"use strict";Ole();u0();jx();Ple=wl&&wl.isMap,nqe=Ple?Tl(Ple):Ile,Ble=nqe});function aqe(t){return wi(t)&&Yo(t)==iqe}var iqe,$le,zle=O(()=>{"use strict";E0();xl();iqe="[object Set]";o(aqe,"baseIsSet");$le=aqe});var Gle,sqe,Vle,qle=O(()=>{"use strict";zle();u0();jx();Gle=wl&&wl.isSet,sqe=Gle?Tl(Gle):$le,Vle=sqe});function BE(t,e,r,n,i,a){var s,l=e&oqe,u=e&lqe,h=e&cqe;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!On(t))return t;var f=zt(t);if(f){if(s=wle(t),!l)return gk(t,s)}else{var d=Yo(t),p=d==Wle||d==pqe;if(mc(t))return dk(t,l);if(d==Hle||d==Ule||p&&!i){if(s=u||p?{}:xk(t),!l)return u?dle(t,lle(s,t)):hle(t,sle(s,t))}else{if(!Un[d])return i?t:{};s=Nle(t,d,l)}}a||(a=new su);var m=a.get(t);if(m)return m;a.set(t,s),Vle(t)?t.forEach(function(v){s.add(BE(v,e,r,v,t,a))}):Ble(t)&&t.forEach(function(v,x){s.set(x,BE(v,e,r,x,t,a))});var g=h?u?IE:Tb:u?no:nn,y=f?void 0:g(t);return xE(y||t,function(v,x){y&&(x=v,v=t[x]),cu(s,x,BE(v,e,r,x,t,a))}),s}var oqe,lqe,cqe,Ule,uqe,hqe,fqe,dqe,Wle,pqe,mqe,gqe,Hle,yqe,vqe,xqe,bqe,Tqe,wqe,kqe,Eqe,Sqe,Cqe,Aqe,_qe,Dqe,Rqe,Lqe,Nqe,Un,FE,tI=O(()=>{"use strict";Wx();UM();o1();ole();cle();hN();pN();fle();ple();ZM();JM();E0();kle();Mle();gN();oi();s1();Fle();Vo();qle();gu();Wf();oqe=1,lqe=2,cqe=4,Ule="[object Arguments]",uqe="[object Array]",hqe="[object Boolean]",fqe="[object Date]",dqe="[object Error]",Wle="[object Function]",pqe="[object GeneratorFunction]",mqe="[object Map]",gqe="[object Number]",Hle="[object Object]",yqe="[object RegExp]",vqe="[object Set]",xqe="[object String]",bqe="[object Symbol]",Tqe="[object WeakMap]",wqe="[object ArrayBuffer]",kqe="[object DataView]",Eqe="[object Float32Array]",Sqe="[object Float64Array]",Cqe="[object Int8Array]",Aqe="[object Int16Array]",_qe="[object Int32Array]",Dqe="[object Uint8Array]",Rqe="[object Uint8ClampedArray]",Lqe="[object Uint16Array]",Nqe="[object Uint32Array]",Un={};Un[Ule]=Un[uqe]=Un[wqe]=Un[kqe]=Un[hqe]=Un[fqe]=Un[Eqe]=Un[Sqe]=Un[Cqe]=Un[Aqe]=Un[_qe]=Un[mqe]=Un[gqe]=Un[Hle]=Un[yqe]=Un[vqe]=Un[xqe]=Un[bqe]=Un[Dqe]=Un[Rqe]=Un[Lqe]=Un[Nqe]=!0;Un[dqe]=Un[Wle]=Un[Tqe]=!1;o(BE,"baseClone");FE=BE});function Iqe(t){return FE(t,Mqe)}var Mqe,Tn,rI=O(()=>{"use strict";tI();Mqe=4;o(Iqe,"clone");Tn=Iqe});function Bqe(t){return FE(t,Oqe|Pqe)}var Oqe,Pqe,nI,Yle=O(()=>{"use strict";tI();Oqe=1,Pqe=4;o(Bqe,"cloneDeep");nI=Bqe});function Fqe(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e{"use strict";o(Fqe,"compact");xu=Fqe});function zqe(t){return this.__data__.set(t,$qe),this}var $qe,Xle,Kle=O(()=>{"use strict";$qe="__lodash_hash_undefined__";o(zqe,"setCacheAdd");Xle=zqe});function Gqe(t){return this.__data__.has(t)}var Qle,Zle=O(()=>{"use strict";o(Gqe,"setCacheHas");Qle=Gqe});function $E(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new l0;++e{"use strict";hk();Kle();Zle();o($E,"SetCache");$E.prototype.add=$E.prototype.push=Xle;$E.prototype.has=Qle;_1=$E});function Vqe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(Vqe,"arraySome");GE=Vqe});function qqe(t,e){return t.has(e)}var D1,VE=O(()=>{"use strict";o(qqe,"cacheHas");D1=qqe});function Hqe(t,e,r,n,i,a){var s=r&Uqe,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&Wqe?new _1:void 0;for(a.set(t,e),a.set(e,t);++d{"use strict";zE();iI();VE();Uqe=1,Wqe=2;o(Hqe,"equalArrays");qE=Hqe});function Yqe(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var Jle,ece=O(()=>{"use strict";o(Yqe,"mapToArray");Jle=Yqe});function jqe(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var R1,UE=O(()=>{"use strict";o(jqe,"setToArray");R1=jqe});function lUe(t,e,r,n,i,a,s){switch(r){case oUe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case sUe:return!(t.byteLength!=e.byteLength||!a(new e1(t),new e1(e)));case Qqe:case Zqe:case tUe:return vl(+t,+e);case Jqe:return t.name==e.name&&t.message==e.message;case rUe:case iUe:return t==e+"";case eUe:var l=Jle;case nUe:var u=n&Xqe;if(l||(l=R1),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=Kqe,s.set(t,e);var f=qE(l(t),l(e),n,i,a,s);return s.delete(t),f;case aUe:if(sI)return sI.call(t)==sI.call(e)}return!1}var Xqe,Kqe,Qqe,Zqe,Jqe,eUe,tUe,rUe,nUe,iUe,aUe,sUe,oUe,tce,sI,rce,nce=O(()=>{"use strict";s0();fN();o0();aI();ece();UE();Xqe=1,Kqe=2,Qqe="[object Boolean]",Zqe="[object Date]",Jqe="[object Error]",eUe="[object Map]",tUe="[object Number]",rUe="[object RegExp]",nUe="[object Set]",iUe="[object String]",aUe="[object Symbol]",sUe="[object ArrayBuffer]",oUe="[object DataView]",tce=ya?ya.prototype:void 0,sI=tce?tce.valueOf:void 0;o(lUe,"equalByTag");rce=lUe});function fUe(t,e,r,n,i,a){var s=r&cUe,l=Tb(t),u=l.length,h=Tb(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:hUe.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d{"use strict";ZM();cUe=1,uUe=Object.prototype,hUe=uUe.hasOwnProperty;o(fUe,"equalObjects");ice=fUe});function mUe(t,e,r,n,i,a){var s=zt(t),l=zt(e),u=s?oce:Yo(t),h=l?oce:Yo(e);u=u==sce?WE:u,h=h==sce?WE:h;var f=u==WE,d=h==WE,p=u==h;if(p&&mc(t)){if(!mc(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new su),s||qf(t)?qE(t,e,r,n,i,a):rce(t,e,u,r,n,i,a);if(!(r&dUe)){var m=f&&lce.call(t,"__wrapped__"),g=d&&lce.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new su),i(y,v,r,n,a)}}return p?(a||(a=new su),ice(t,e,r,n,i,a)):!1}var dUe,sce,oce,WE,pUe,lce,cce,uce=O(()=>{"use strict";Wx();aI();nce();ace();E0();oi();s1();Xx();dUe=1,sce="[object Arguments]",oce="[object Array]",WE="[object Object]",pUe=Object.prototype,lce=pUe.hasOwnProperty;o(mUe,"baseIsEqualDeep");cce=mUe});function hce(t,e,r,n,i){return t===e?!0:t==null||e==null||!wi(t)&&!wi(e)?t!==t&&e!==e:cce(t,e,r,n,hce,i)}var HE,oI=O(()=>{"use strict";uce();xl();o(hce,"baseIsEqual");HE=hce});function vUe(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i{"use strict";Wx();oI();gUe=1,yUe=2;o(vUe,"baseIsMatch");fce=vUe});function xUe(t){return t===t&&!On(t)}var YE,lI=O(()=>{"use strict";Vo();o(xUe,"isStrictComparable");YE=xUe});function bUe(t){for(var e=nn(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,YE(i)]}return e}var pce,mce=O(()=>{"use strict";lI();gu();o(bUe,"getMatchData");pce=bUe});function TUe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var jE,cI=O(()=>{"use strict";o(TUe,"matchesStrictComparable");jE=TUe});function wUe(t){var e=pce(t);return e.length==1&&e[0][2]?jE(e[0][0],e[0][1]):function(r){return r===t||fce(r,t,e)}}var gce,yce=O(()=>{"use strict";dce();mce();cI();o(wUe,"baseMatches");gce=wUe});function kUe(t,e){return t!=null&&e in Object(t)}var vce,xce=O(()=>{"use strict";o(kUe,"baseHasIn");vce=kUe});function EUe(t,e,r){e=td(e,t);for(var n=-1,i=e.length,a=!1;++n{"use strict";xb();i1();oi();Qx();bk();k1();o(EUe,"hasPath");XE=EUe});function SUe(t,e){return t!=null&&XE(t,e,vce)}var KE,hI=O(()=>{"use strict";xce();uI();o(SUe,"hasIn");KE=SUe});function _Ue(t,e){return w1(t)&&YE(e)?jE(yu(t),e):function(r){var n=joe(r,t);return n===void 0&&n===e?KE(r,t):HE(e,n,CUe|AUe)}}var CUe,AUe,bce,Tce=O(()=>{"use strict";oI();Xoe();hI();EE();lI();cI();k1();CUe=1,AUe=2;o(_Ue,"baseMatchesProperty");bce=_Ue});function DUe(t){return function(e){return e?.[t]}}var QE,fI=O(()=>{"use strict";o(DUe,"baseProperty");QE=DUe});function RUe(t){return function(e){return rd(e,t)}}var wce,kce=O(()=>{"use strict";bb();o(RUe,"basePropertyDeep");wce=RUe});function LUe(t){return w1(t)?QE(yu(t)):wce(t)}var Ece,Sce=O(()=>{"use strict";fI();kce();EE();k1();o(LUe,"property");Ece=LUe});function NUe(t){return typeof t=="function"?t:t==null?va:typeof t=="object"?zt(t)?bce(t[0],t[1]):gce(t):Ece(t)}var Ln,Rs=O(()=>{"use strict";yce();Tce();Eh();oi();Sce();o(NUe,"baseIteratee");Ln=NUe});function MUe(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i{"use strict";o(MUe,"arrayAggregator");Cce=MUe});function IUe(t,e){return t&&Jg(t,e,nn)}var L1,ZE=O(()=>{"use strict";fk();gu();o(IUe,"baseForOwn");L1=IUe});function OUe(t,e){return function(r,n){if(r==null)return r;if(!Li(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a{"use strict";bl();o(OUe,"createBaseEach");_ce=OUe});var PUe,po,id=O(()=>{"use strict";ZE();Dce();PUe=_ce(L1),po=PUe});function BUe(t,e,r,n){return po(t,function(i,a,s){e(n,i,r(i),s)}),n}var Rce,Lce=O(()=>{"use strict";id();o(BUe,"baseAggregator");Rce=BUe});function FUe(t,e){return function(r,n){var i=zt(r)?Cce:Rce,a=e?e():{};return i(r,t,Ln(n,2),a)}}var Nce,Mce=O(()=>{"use strict";Ace();Lce();Rs();oi();o(FUe,"createAggregator");Nce=FUe});var $Ue,JE,Ice=O(()=>{"use strict";yl();$Ue=o(function(){return Ri.Date.now()},"now"),JE=$Ue});var Oce,zUe,GUe,ad,Pce=O(()=>{"use strict";l1();o0();f0();Wf();Oce=Object.prototype,zUe=Oce.hasOwnProperty,GUe=uu(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&qo(e[0],e[1],i)&&(n=1);++r{"use strict";o(VUe,"arrayIncludesWith");eS=VUe});function UUe(t,e,r,n){var i=-1,a=wE,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=fo(e,Tl(r))),n?(a=eS,s=!1):e.length>=qUe&&(a=D1,s=!1,e=new _1(e));e:for(;++i{"use strict";zE();HM();dI();w0();u0();VE();qUe=200;o(UUe,"baseDifference");Bce=UUe});var WUe,sd,$ce=O(()=>{"use strict";Fce();S1();l1();Tk();WUe=uu(function(t,e){return c0(t)?Bce(t,vu(e,1,c0,!0)):[]}),sd=WUe});function HUe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ba,zce=O(()=>{"use strict";o(HUe,"last");ba=HUe});function YUe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:mu(e),_E(t,e<0?0:e,n)):[]}var Pi,Gce=O(()=>{"use strict";jM();x1();o(YUe,"drop");Pi=YUe});function jUe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:mu(e),e=n-e,_E(t,0,e<0?0:e)):[]}var Nh,Vce=O(()=>{"use strict";jM();x1();o(jUe,"dropRight");Nh=jUe});function XUe(t){return typeof t=="function"?t:va}var N1,tS=O(()=>{"use strict";Eh();o(XUe,"castFunction");N1=XUe});function KUe(t,e){var r=zt(t)?xE:po;return r(t,N1(e))}var Oe,rS=O(()=>{"use strict";UM();id();tS();oi();o(KUe,"forEach");Oe=KUe});var qce=O(()=>{"use strict";rS()});function QUe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(QUe,"arrayEvery");Uce=QUe});function ZUe(t,e){var r=!0;return po(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var Hce,Yce=O(()=>{"use strict";id();o(ZUe,"baseEvery");Hce=ZUe});function JUe(t,e,r){var n=zt(t)?Uce:Hce;return r&&qo(t,e,r)&&(e=void 0),n(t,Ln(e,3))}var is,jce=O(()=>{"use strict";Wce();Yce();Rs();oi();f0();o(JUe,"every");is=JUe});function eWe(t,e){var r=[];return po(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var nS,pI=O(()=>{"use strict";id();o(eWe,"baseFilter");nS=eWe});function tWe(t,e){var r=zt(t)?C1:nS;return r(t,Ln(e,3))}var dn,mI=O(()=>{"use strict";DE();pI();Rs();oi();o(tWe,"filter");dn=tWe});function rWe(t){return function(e,r,n){var i=Object(e);if(!Li(e)){var a=Ln(r,3);e=nn(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var Xce,Kce=O(()=>{"use strict";Rs();bl();gu();o(rWe,"createFind");Xce=rWe});function iWe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:mu(r);return i<0&&(i=nWe(n+i,0)),bE(t,Ln(e,3),i)}var nWe,Qce,Zce=O(()=>{"use strict";WM();Rs();x1();nWe=Math.max;o(iWe,"findIndex");Qce=iWe});var aWe,Ls,Jce=O(()=>{"use strict";Kce();Zce();aWe=Xce(Qce),Ls=aWe});function sWe(t){return t&&t.length?t[0]:void 0}var Ta,eue=O(()=>{"use strict";o(sWe,"head");Ta=sWe});var tue=O(()=>{"use strict";eue()});function oWe(t,e){var r=-1,n=Li(t)?Array(t.length):[];return po(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var iS,gI=O(()=>{"use strict";id();bl();o(oWe,"baseMap");iS=oWe});function lWe(t,e){var r=zt(t)?fo:iS;return r(t,Ln(e,3))}var lt,M1=O(()=>{"use strict";w0();Rs();gI();oi();o(lWe,"map");lt=lWe});function cWe(t,e){return vu(lt(t,e),1)}var za,yI=O(()=>{"use strict";S1();M1();o(cWe,"flatMap");za=cWe});function uWe(t,e){return t==null?t:Jg(t,N1(e),no)}var vI,rue=O(()=>{"use strict";fk();tS();Wf();o(uWe,"forIn");vI=uWe});function hWe(t,e){return t&&L1(t,N1(e))}var xI,nue=O(()=>{"use strict";ZE();tS();o(hWe,"forOwn");xI=hWe});var fWe,dWe,pWe,bI,iue=O(()=>{"use strict";Zg();Mce();fWe=Object.prototype,dWe=fWe.hasOwnProperty,pWe=Nce(function(t,e,r){dWe.call(t,r)?t[r].push(e):ou(t,r,[e])}),bI=pWe});function mWe(t,e){return t>e}var aue,sue=O(()=>{"use strict";o(mWe,"baseGt");aue=mWe});function vWe(t,e){return t!=null&&yWe.call(t,e)}var gWe,yWe,oue,lue=O(()=>{"use strict";gWe=Object.prototype,yWe=gWe.hasOwnProperty;o(vWe,"baseHas");oue=vWe});function xWe(t,e){return t!=null&&XE(t,e,oue)}var Gt,cue=O(()=>{"use strict";lue();uI();o(xWe,"has");Gt=xWe});function TWe(t){return typeof t=="string"||!zt(t)&&wi(t)&&Pa(t)==bWe}var bWe,Bi,aS=O(()=>{"use strict";Th();oi();xl();bWe="[object String]";o(TWe,"isString");Bi=TWe});function wWe(t,e){return fo(e,function(r){return t[r]})}var uue,hue=O(()=>{"use strict";w0();o(wWe,"baseValues");uue=wWe});function kWe(t){return t==null?[]:uue(t,nn(t))}var Gr,TI=O(()=>{"use strict";hue();gu();o(kWe,"values");Gr=kWe});function SWe(t,e,r,n){t=Li(t)?t:Gr(t),r=r&&!n?mu(r):0;var i=t.length;return r<0&&(r=EWe(i+r,0)),Bi(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&b1(t,e,r)>-1}var EWe,ci,fue=O(()=>{"use strict";TE();bl();aS();x1();TI();EWe=Math.max;o(SWe,"includes");ci=SWe});function AWe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:mu(r);return i<0&&(i=CWe(n+i,0)),b1(t,e,i)}var CWe,sS,due=O(()=>{"use strict";TE();x1();CWe=Math.max;o(AWe,"indexOf");sS=AWe});function NWe(t){if(t==null)return!0;if(Li(t)&&(zt(t)||typeof t=="string"||typeof t.splice=="function"||mc(t)||qf(t)||pc(t)))return!t.length;var e=Yo(t);if(e==_We||e==DWe)return!t.size;if(lu(t))return!T1(t).length;for(var r in t)if(LWe.call(t,r))return!1;return!0}var _We,DWe,RWe,LWe,Er,oS=O(()=>{"use strict";kE();E0();i1();oi();bl();s1();n1();Xx();_We="[object Map]",DWe="[object Set]",RWe=Object.prototype,LWe=RWe.hasOwnProperty;o(NWe,"isEmpty");Er=NWe});function IWe(t){return wi(t)&&Pa(t)==MWe}var MWe,pue,mue=O(()=>{"use strict";Th();xl();MWe="[object RegExp]";o(IWe,"baseIsRegExp");pue=IWe});var gue,OWe,Al,yue=O(()=>{"use strict";mue();u0();jx();gue=wl&&wl.isRegExp,OWe=gue?Tl(gue):pue,Al=OWe});function PWe(t){return t===void 0}var Dr,vue=O(()=>{"use strict";o(PWe,"isUndefined");Dr=PWe});function BWe(t,e){return t{"use strict";o(BWe,"baseLt");lS=BWe});function FWe(t,e){var r={};return e=Ln(e,3),L1(t,function(n,i,a){ou(r,i,e(n,i,a))}),r}var S0,xue=O(()=>{"use strict";Zg();ZE();Rs();o(FWe,"mapValues");S0=FWe});function $We(t,e,r){for(var n=-1,i=t.length;++n{"use strict";T0();o($We,"baseExtremum");I1=$We});function zWe(t){return t&&t.length?I1(t,va,aue):void 0}var mo,bue=O(()=>{"use strict";cS();sue();Eh();o(zWe,"max");mo=zWe});function GWe(t){return t&&t.length?I1(t,va,lS):void 0}var vc,kI=O(()=>{"use strict";cS();wI();Eh();o(GWe,"min");vc=GWe});function VWe(t,e){return t&&t.length?I1(t,Ln(e,2),lS):void 0}var C0,Tue=O(()=>{"use strict";cS();Rs();wI();o(VWe,"minBy");C0=VWe});function UWe(t){if(typeof t!="function")throw new TypeError(qWe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var qWe,wue,kue=O(()=>{"use strict";qWe="Expected a function";o(UWe,"negate");wue=UWe});function WWe(t,e,r,n){if(!On(t))return t;e=td(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i{"use strict";o1();xb();Qx();Vo();k1();o(WWe,"baseSet");Eue=WWe});function HWe(t,e,r){for(var n=-1,i=e.length,a={};++n{"use strict";bb();Sue();xb();o(HWe,"basePickBy");uS=HWe});function YWe(t,e){if(t==null)return{};var r=fo(IE(t),function(n){return[n]});return e=Ln(e),uS(t,r,function(n,i){return e(n,i[0])})}var go,Cue=O(()=>{"use strict";w0();Rs();EI();JM();o(YWe,"pickBy");go=YWe});function jWe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var Aue,_ue=O(()=>{"use strict";o(jWe,"baseSortBy");Aue=jWe});function XWe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=Ho(t),s=e!==void 0,l=e===null,u=e===e,h=Ho(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t{"use strict";T0();o(XWe,"compareAscending");Due=XWe});function KWe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var Lue,Nue=O(()=>{"use strict";Rue();o(KWe,"compareMultiple");Lue=KWe});function QWe(t,e,r){e.length?e=fo(e,function(a){return zt(a)?function(s){return rd(s,a.length===1?a[0]:a)}:a}):e=[va];var n=-1;e=fo(e,Tl(Ln));var i=iS(t,function(a,s,l){var u=fo(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return Aue(i,function(a,s){return Lue(a,s,r)})}var Mue,Iue=O(()=>{"use strict";w0();bb();Rs();gI();_ue();u0();Nue();Eh();oi();o(QWe,"baseOrderBy");Mue=QWe});var ZWe,Oue,Pue=O(()=>{"use strict";fI();ZWe=QE("length"),Oue=ZWe});function uHe(t){for(var e=Bue.lastIndex=0;Bue.test(t);)++e;return e}var Fue,JWe,eHe,tHe,rHe,nHe,iHe,SI,CI,aHe,$ue,zue,Gue,sHe,Vue,que,oHe,lHe,cHe,Bue,Uue,Wue=O(()=>{"use strict";Fue="\\ud800-\\udfff",JWe="\\u0300-\\u036f",eHe="\\ufe20-\\ufe2f",tHe="\\u20d0-\\u20ff",rHe=JWe+eHe+tHe,nHe="\\ufe0e\\ufe0f",iHe="["+Fue+"]",SI="["+rHe+"]",CI="\\ud83c[\\udffb-\\udfff]",aHe="(?:"+SI+"|"+CI+")",$ue="[^"+Fue+"]",zue="(?:\\ud83c[\\udde6-\\uddff]){2}",Gue="[\\ud800-\\udbff][\\udc00-\\udfff]",sHe="\\u200d",Vue=aHe+"?",que="["+nHe+"]?",oHe="(?:"+sHe+"(?:"+[$ue,zue,Gue].join("|")+")"+que+Vue+")*",lHe=que+Vue+oHe,cHe="(?:"+[$ue+SI+"?",SI,zue,Gue,iHe].join("|")+")",Bue=RegExp(CI+"(?="+CI+")|"+cHe+lHe,"g");o(uHe,"unicodeSize");Uue=uHe});function hHe(t){return rle(t)?Uue(t):Oue(t)}var Hue,Yue=O(()=>{"use strict";Pue();nle();Wue();o(hHe,"stringSize");Hue=hHe});function fHe(t,e){return uS(t,e,function(r,n){return KE(t,n)})}var jue,Xue=O(()=>{"use strict";EI();hI();o(fHe,"basePick");jue=fHe});var dHe,A0,Kue=O(()=>{"use strict";Xue();tle();dHe=ele(function(t,e){return t==null?{}:jue(t,e)}),A0=dHe});function gHe(t,e,r,n){for(var i=-1,a=mHe(pHe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var pHe,mHe,Que,Zue=O(()=>{"use strict";pHe=Math.ceil,mHe=Math.max;o(gHe,"baseRange");Que=gHe});function yHe(t){return function(e,r,n){return n&&typeof n!="number"&&qo(e,r,n)&&(r=n=void 0),e=v1(e),r===void 0?(r=e,e=0):r=v1(r),n=n===void 0?e{"use strict";Zue();f0();VM();o(yHe,"createRange");Jue=yHe});var vHe,_l,the=O(()=>{"use strict";ehe();vHe=Jue(),_l=vHe});function xHe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var rhe,nhe=O(()=>{"use strict";o(xHe,"baseReduce");rhe=xHe});function bHe(t,e,r){var n=zt(t)?ile:rhe,i=arguments.length<3;return n(t,Ln(e,4),r,i,po)}var pn,AI=O(()=>{"use strict";ale();id();Rs();nhe();oi();o(bHe,"reduce");pn=bHe});function THe(t,e){var r=zt(t)?C1:nS;return r(t,wue(Ln(e,3)))}var od,ihe=O(()=>{"use strict";DE();pI();Rs();oi();kue();o(THe,"reject");od=THe});function EHe(t){if(t==null)return 0;if(Li(t))return Bi(t)?Hue(t):t.length;var e=Yo(t);return e==wHe||e==kHe?t.size:T1(t).length}var wHe,kHe,_I,ahe=O(()=>{"use strict";kE();E0();bl();aS();Yue();wHe="[object Map]",kHe="[object Set]";o(EHe,"size");_I=EHe});function SHe(t,e){var r;return po(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var she,ohe=O(()=>{"use strict";id();o(SHe,"baseSome");she=SHe});function CHe(t,e,r){var n=zt(t)?GE:she;return r&&qo(t,e,r)&&(e=void 0),n(t,Ln(e,3))}var wb,lhe=O(()=>{"use strict";iI();Rs();ohe();oi();f0();o(CHe,"some");wb=CHe});var AHe,bu,che=O(()=>{"use strict";S1();Iue();l1();f0();AHe=uu(function(t,e){if(t==null)return[];var r=e.length;return r>1&&qo(t,e[0],e[1])?e=[]:r>2&&qo(e[0],e[1],e[2])&&(e=[e[0]]),Mue(t,vu(e,1),[])}),bu=AHe});var _He,DHe,uhe,hhe=O(()=>{"use strict";eI();qM();UE();_He=1/0,DHe=nd&&1/R1(new nd([,-0]))[1]==_He?function(t){return new nd(t)}:ki,uhe=DHe});function LHe(t,e,r){var n=-1,i=wE,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=eS;else if(a>=RHe){var h=e?null:uhe(t);if(h)return R1(h);s=!1,i=D1,u=new _1}else u=e?[]:l;e:for(;++n{"use strict";zE();HM();dI();VE();hhe();UE();RHe=200;o(LHe,"baseUniq");O1=LHe});var NHe,DI,fhe=O(()=>{"use strict";S1();l1();hS();Tk();NHe=uu(function(t){return O1(vu(t,1,c0,!0))}),DI=NHe});function MHe(t){return t&&t.length?O1(t):[]}var P1,dhe=O(()=>{"use strict";hS();o(MHe,"uniq");P1=MHe});function IHe(t,e){return t&&t.length?O1(t,Ln(e,2)):[]}var phe,mhe=O(()=>{"use strict";Rs();hS();o(IHe,"uniqBy");phe=IHe});function PHe(t){var e=++OHe;return SE(t)+e}var OHe,_0,ghe=O(()=>{"use strict";YM();OHe=0;o(PHe,"uniqueId");_0=PHe});function BHe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{"use strict";o(BHe,"baseZipObject");yhe=BHe});function FHe(t,e){return yhe(t||[],e||[],cu)}var fS,xhe=O(()=>{"use strict";o1();vhe();o(FHe,"zipObject");fS=FHe});var rr=O(()=>{"use strict";qoe();rI();Yle();jle();wN();Pce();$ce();Gce();Vce();qce();jce();mI();Jce();tue();yI();AE();rS();rue();nue();iue();cue();Eh();fue();due();oi();oS();zx();Vo();yue();aS();vue();gu();zce();M1();xue();bue();SN();kI();Tue();qM();Ice();Kue();Cue();the();AI();ihe();ahe();lhe();che();fhe();dhe();ghe();TI();xhe();});function The(t,e){t[e]?t[e]++:t[e]=1}function whe(t,e){--t[e]||delete t[e]}function kb(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+bhe+a+bhe+(Dr(n)?$He:n)}function zHe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function RI(t,e){return kb(t,e.v,e.w,e.name)}var $He,D0,bhe,wn,dS=O(()=>{"use strict";rr();$He="\0",D0="\0",bhe="",wn=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=io(void 0),this._defaultEdgeLabelFn=io(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[D0]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return Vi(e)||(e=io(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return nn(this._nodes)}sources(){var e=this;return dn(this.nodes(),function(r){return Er(e._in[r])})}sinks(){var e=this;return dn(this.nodes(),function(r){return Er(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Oe(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=D0,this._children[e]={},this._children[D0][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=o(n=>this.removeEdge(this._edgeObjs[n]),"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Oe(this.children(e),n=>{this.setParent(n)}),delete this._children[e]),Oe(nn(this._in[e]),r),delete this._in[e],delete this._preds[e],Oe(nn(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Dr(r))r=D0;else{r+="";for(var n=r;!Dr(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==D0)return r}}children(e){if(Dr(e)&&(e=D0),this._isCompound){var r=this._children[e];if(r)return nn(r)}else{if(e===D0)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return nn(r)}successors(e){var r=this._sucs[e];if(r)return nn(r)}neighbors(e){var r=this.predecessors(e);if(r)return DI(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Oe(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Oe(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Oe(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return Vi(e)||(e=io(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Gr(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return pn(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,Dr(n)||(n=""+n);var l=kb(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!Dr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=zHe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,The(this._preds[r],e),The(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?RI(this._isDirected,arguments[0]):kb(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?RI(this._isDirected,arguments[0]):kb(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?RI(this._isDirected,arguments[0]):kb(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],whe(this._preds[r],e),whe(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=Gr(n);return r?dn(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=Gr(n);return r?dn(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};wn.prototype._nodeCount=0;wn.prototype._edgeCount=0;o(The,"incrementOrInitEntry");o(whe,"decrementOrRemoveEntry");o(kb,"edgeArgsToId");o(zHe,"edgeArgsToObj");o(RI,"edgeObjToId")});var Dl=O(()=>{"use strict";dS()});function khe(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function GHe(t,e){if(t!=="_next"&&t!=="_prev")return e}var mS,Ehe=O(()=>{"use strict";mS=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return khe(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&khe(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,GHe)),n=n._prev;return"["+e.join(", ")+"]"}};o(khe,"unlink");o(GHe,"filterOutLinks")});function She(t,e){if(t.nodeCount()<=1)return[];var r=UHe(t,e||VHe),n=qHe(r.graph,r.buckets,r.zeroIdx);return fn(lt(n,function(i){return t.outEdges(i.v,i.w)}))}function qHe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)LI(t,e,r,s);for(;s=i.dequeue();)LI(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(LI(t,e,r,s,!0));break}}}return n}function LI(t,e,r,n,i){var a=i?[]:void 0;return Oe(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,NI(e,r,u)}),Oe(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,NI(e,r,h)}),t.removeNode(n.v),a}function UHe(t,e){var r=new wn,n=0,i=0;Oe(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Oe(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=_l(i+n+3).map(function(){return new mS}),s=n+1;return Oe(r.nodes(),function(l){NI(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function NI(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var VHe,Che=O(()=>{"use strict";rr();Dl();Ehe();VHe=io(1);o(She,"greedyFAS");o(qHe,"doGreedyFAS");o(LI,"removeNode");o(UHe,"buildState");o(NI,"assignBucket")});function Ahe(t){var e=t.graph().acyclicer==="greedy"?She(t,r(t)):WHe(t);Oe(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,_0("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function WHe(t){var e=[],r={},n={};function i(a){Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,r[a]=!0,Oe(t.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Oe(t.nodes(),i),e}function _he(t){Oe(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var MI=O(()=>{"use strict";rr();Che();o(Ahe,"run");o(WHe,"dfsFAS");o(_he,"undo")});function Tu(t,e,r,n){var i;do i=_0(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function Rhe(t){var e=new wn().setGraph(t.graph());return Oe(t.nodes(),function(r){e.setNode(r,t.node(r))}),Oe(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function gS(t){var e=new wn({multigraph:t.isMultigraph()}).setGraph(t.graph());return Oe(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Oe(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function II(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function ld(t){var e=lt(_l(PI(t)+1),function(){return[]});return Oe(t.nodes(),function(r){var n=t.node(r),i=n.rank;Dr(i)||(e[i][n.order]=r)}),e}function Lhe(t){var e=vc(lt(t.nodes(),function(r){return t.node(r).rank}));Oe(t.nodes(),function(r){var n=t.node(r);Gt(n,"rank")&&(n.rank-=e)})}function Nhe(t){var e=vc(lt(t.nodes(),function(a){return t.node(a).rank})),r=[];Oe(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Oe(r,function(a,s){Dr(a)&&s%i!==0?--n:n&&Oe(a,function(l){t.node(l).rank+=n})})}function OI(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Tu(t,"border",i,e)}function PI(t){return mo(lt(t.nodes(),function(e){var r=t.node(e).rank;if(!Dr(r))return r}))}function Mhe(t,e){var r={lhs:[],rhs:[]};return Oe(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function Ihe(t,e){var r=JE();try{return e()}finally{console.log(t+" time: "+(JE()-r)+"ms")}}function Ohe(t,e){return e()}var wu=O(()=>{"use strict";rr();Dl();o(Tu,"addDummyNode");o(Rhe,"simplify");o(gS,"asNonCompoundGraph");o(II,"intersectRect");o(ld,"buildLayerMatrix");o(Lhe,"normalizeRanks");o(Nhe,"removeEmptyRanks");o(OI,"addBorderNode");o(PI,"maxRank");o(Mhe,"partition");o(Ihe,"time");o(Ohe,"notime")});function Bhe(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Oe(n,e),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";rr();wu();o(Bhe,"addBorderSegments");o(Phe,"addBorderNode")});function zhe(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&Vhe(t)}function Ghe(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&HHe(t),(e==="lr"||e==="rl")&&(YHe(t),Vhe(t))}function Vhe(t){Oe(t.nodes(),function(e){$he(t.node(e))}),Oe(t.edges(),function(e){$he(t.edge(e))})}function $he(t){var e=t.width;t.width=t.height,t.height=e}function HHe(t){Oe(t.nodes(),function(e){BI(t.node(e))}),Oe(t.edges(),function(e){var r=t.edge(e);Oe(r.points,BI),Object.prototype.hasOwnProperty.call(r,"y")&&BI(r)})}function BI(t){t.y=-t.y}function YHe(t){Oe(t.nodes(),function(e){FI(t.node(e))}),Oe(t.edges(),function(e){var r=t.edge(e);Oe(r.points,FI),Object.prototype.hasOwnProperty.call(r,"x")&&FI(r)})}function FI(t){var e=t.x;t.x=t.y,t.y=e}var qhe=O(()=>{"use strict";rr();o(zhe,"adjust");o(Ghe,"undo");o(Vhe,"swapWidthHeight");o($he,"swapWidthHeightOne");o(HHe,"reverseY");o(BI,"reverseYOne");o(YHe,"swapXY");o(FI,"swapXYOne")});function Uhe(t){t.graph().dummyChains=[],Oe(t.edges(),function(e){XHe(t,e)})}function XHe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h=void 0,f,d;for(d=0,++n;n{"use strict";rr();wu();o(Uhe,"run");o(XHe,"normalizeEdge");o(Whe,"undo")});function Eb(t){var e={};function r(n){var i=t.node(n);if(Object.prototype.hasOwnProperty.call(e,n))return i.rank;e[n]=!0;var a=vc(lt(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Oe(t.sources(),r)}function R0(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var yS=O(()=>{"use strict";rr();o(Eb,"longestPath");o(R0,"slack")});function vS(t){var e=new wn({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;KHe(e,t){"use strict";rr();Dl();yS();o(vS,"feasibleTree");o(KHe,"tightTree");o(QHe,"findMinSlackEdge");o(ZHe,"shiftRanks")});var Yhe=O(()=>{"use strict"});var GI=O(()=>{"use strict"});var msr,VI=O(()=>{"use strict";rr();GI();msr=io(1)});var jhe=O(()=>{"use strict";VI()});var qI=O(()=>{"use strict"});var Xhe=O(()=>{"use strict";qI()});var Csr,Khe=O(()=>{"use strict";rr();Csr=io(1)});function UI(t){var e={},r={},n=[];function i(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new Sb;Object.prototype.hasOwnProperty.call(e,a)||(r[a]=!0,e[a]=!0,Oe(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Oe(t.sinks(),i),_I(e)!==t.nodeCount())throw new Sb;return n}function Sb(){}var WI=O(()=>{"use strict";rr();UI.CycleException=Sb;o(UI,"topsort");o(Sb,"CycleException");Sb.prototype=new Error});var Qhe=O(()=>{"use strict";WI()});function xS(t,e,r){zt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Oe(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);Zhe(t,s,r==="post",a,n,i)}),i}function Zhe(t,e,r,n,i,a){Object.prototype.hasOwnProperty.call(n,e)||(n[e]=!0,r||a.push(e),Oe(i(e),function(s){Zhe(t,s,r,n,i,a)}),r&&a.push(e))}var HI=O(()=>{"use strict";rr();o(xS,"dfs");o(Zhe,"doDfs")});function YI(t,e){return xS(t,e,"post")}var Jhe=O(()=>{"use strict";HI();o(YI,"postorder")});function jI(t,e){return xS(t,e,"pre")}var efe=O(()=>{"use strict";HI();o(jI,"preorder")});var tfe=O(()=>{"use strict";GI();dS()});var rfe=O(()=>{"use strict";Yhe();VI();jhe();Xhe();Khe();Qhe();Jhe();efe();tfe();qI();WI()});function ud(t){t=Rhe(t),Eb(t);var e=vS(t);KI(e),XI(e,t);for(var r,n;r=sfe(e);)n=ofe(e,t,r),lfe(e,t,r,n)}function XI(t,e){var r=YI(t,t.nodes());r=r.slice(0,r.length-1),Oe(r,function(n){nYe(t,e,n)})}function nYe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=ife(t,e,r)}function ife(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Oe(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,aYe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function KI(t,e){arguments.length<2&&(e=t.nodes()[0]),afe(t,{},1,e)}function afe(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Oe(t.neighbors(n),function(l){Object.prototype.hasOwnProperty.call(e,l)||(r=afe(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function sfe(t){return Ls(t.edges(),function(e){return t.edge(e).cutvalue<0})}function ofe(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=dn(e.edges(),function(f){return u===nfe(t,t.node(f.v),l)&&u!==nfe(t,t.node(f.w),l)});return C0(h,function(f){return R0(e,f)})}function lfe(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),KI(t),XI(t,e),iYe(t,e)}function iYe(t,e){var r=Ls(t.nodes(),function(i){return!e.node(i).parent}),n=jI(t,r);n=n.slice(1),Oe(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function aYe(t,e,r){return t.hasEdge(e,r)}function nfe(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var cfe=O(()=>{"use strict";rr();rfe();wu();zI();yS();ud.initLowLimValues=KI;ud.initCutValues=XI;ud.calcCutValue=ife;ud.leaveEdge=sfe;ud.enterEdge=ofe;ud.exchangeEdges=lfe;o(ud,"networkSimplex");o(XI,"initCutValues");o(nYe,"assignCutValue");o(ife,"calcCutValue");o(KI,"initLowLimValues");o(afe,"dfsAssignLowLim");o(sfe,"leaveEdge");o(ofe,"enterEdge");o(lfe,"exchangeEdges");o(iYe,"updateRanks");o(aYe,"isTreeEdge");o(nfe,"isDescendant")});function QI(t){switch(t.graph().ranker){case"network-simplex":ufe(t);break;case"tight-tree":oYe(t);break;case"longest-path":sYe(t);break;default:ufe(t)}}function oYe(t){Eb(t),vS(t)}function ufe(t){ud(t)}var sYe,ZI=O(()=>{"use strict";zI();cfe();yS();o(QI,"rank");sYe=Eb;o(oYe,"tightTreeRanker");o(ufe,"networkSimplexRanker")});function hfe(t){var e=Tu(t,"root",{},"_root"),r=lYe(t),n=mo(Gr(r))-1,i=2*n+1;t.graph().nestingRoot=e,Oe(t.edges(),function(s){t.edge(s).minlen*=i});var a=cYe(t)+1;Oe(t.children(),function(s){ffe(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function ffe(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=OI(t,"_bt"),h=OI(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Oe(l,function(d){ffe(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function lYe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Oe(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Oe(t.children(),function(n){r(n,1)}),e}function cYe(t){return pn(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function dfe(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Oe(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var pfe=O(()=>{"use strict";rr();wu();o(hfe,"run");o(ffe,"dfs");o(lYe,"treeDepths");o(cYe,"sumWeights");o(dfe,"cleanup")});function mfe(t,e,r){var n={},i;Oe(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var gfe=O(()=>{"use strict";rr();o(mfe,"addSubgraphConstraints")});function yfe(t,e,r){var n=hYe(t),i=new wn({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Oe(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Oe(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=Dr(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function hYe(t){for(var e;t.hasNode(e=_0("_root")););return e}var vfe=O(()=>{"use strict";rr();Dl();o(yfe,"buildLayerGraph");o(hYe,"createRootNode")});function xfe(t,e){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var bfe=O(()=>{"use strict";rr();o(xfe,"crossCount");o(fYe,"twoLayerCrossCount")});function Tfe(t){var e={},r=dn(t.nodes(),function(l){return!t.children(l).length}),n=mo(lt(r,function(l){return t.node(l).rank})),i=lt(_l(n+1),function(){return[]});function a(l){if(!Gt(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Oe(t.successors(l),a)}}o(a,"dfs");var s=bu(r,function(l){return t.node(l).rank});return Oe(s,a),i}var wfe=O(()=>{"use strict";rr();o(Tfe,"initOrder")});function kfe(t,e){return lt(e,function(r){var n=t.inEdges(r);if(n.length){var i=pn(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var Efe=O(()=>{"use strict";rr();o(kfe,"barycenter")});function Sfe(t,e){var r={};Oe(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};Dr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Oe(e.edges(),function(i){var a=r[i.v],s=r[i.w];!Dr(a)&&!Dr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=dn(r,function(i){return!i.indegree});return dYe(n)}function dYe(t){var e=[];function r(a){return function(s){s.merged||(Dr(s.barycenter)||Dr(a.barycenter)||s.barycenter>=a.barycenter)&&pYe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Oe(i.in.reverse(),r(i)),Oe(i.out,n(i))}return lt(dn(e,function(a){return!a.merged}),function(a){return A0(a,["vs","i","barycenter","weight"])})}function pYe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var Cfe=O(()=>{"use strict";rr();o(Sfe,"resolveConflicts");o(dYe,"doResolveConflicts");o(pYe,"mergeEntries")});function _fe(t,e){var r=Mhe(t,function(f){return Object.prototype.hasOwnProperty.call(f,"barycenter")}),n=r.lhs,i=bu(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(mYe(!!e)),u=Afe(a,i,u),Oe(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=Afe(a,i,u)});var h={vs:fn(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function Afe(t,e,r){for(var n;e.length&&(n=ba(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function mYe(t){return function(e,r){return e.barycenterr.barycenter?1:t?r.i-e.i:e.i-r.i}}var Dfe=O(()=>{"use strict";rr();wu();o(_fe,"sort");o(Afe,"consumeUnsortable");o(mYe,"compareWithBias")});function JI(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=dn(i,function(g){return g!==s&&g!==l}));var h=kfe(t,i);Oe(h,function(g){if(t.children(g.v).length){var y=JI(t,g.v,r,n);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&yYe(g,y)}});var f=Sfe(h,r);gYe(f,u);var d=_fe(f,n);if(s&&(d.vs=fn([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function gYe(t,e){Oe(t,function(r){r.vs=fn(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function yYe(t,e){Dr(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var Rfe=O(()=>{"use strict";rr();Efe();Cfe();Dfe();o(JI,"sortSubgraph");o(gYe,"expandSubgraphs");o(yYe,"mergeBarycenters")});function Mfe(t){var e=PI(t),r=Lfe(t,_l(1,e+1),"inEdges"),n=Lfe(t,_l(e-1,-1,-1),"outEdges"),i=Tfe(t);Nfe(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){vYe(l%2?r:n,l%4>=2),i=ld(t);var h=xfe(t,i);h{"use strict";rr();Dl();wu();gfe();vfe();bfe();wfe();Rfe();o(Mfe,"order");o(Lfe,"buildLayerGraphs");o(vYe,"sweepLayerGraphs");o(Nfe,"assignOrder")});function Ofe(t){var e=bYe(t);Oe(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=xYe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRanks||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function bYe(t){var e={},r=0;function n(i){var a=r;Oe(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Oe(t.children(),n),e}var Pfe=O(()=>{"use strict";rr();o(Ofe,"parentDummyChains");o(xYe,"findPath");o(bYe,"postorder")});function TYe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=ba(a);return Oe(a,function(f,d){var p=kYe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Oe(a.slice(l,d+1),function(g){Oe(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(xh)&&Bfe(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Oe(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),pn(e,i),r}function kYe(t,e){if(t.node(e).dummy)return Ls(t.predecessors(e),function(r){return t.node(r).dummy})}function Bfe(t,e,r){if(e>r){var n=e;e=r,r=n}Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{enumerable:!0,configurable:!0,value:{},writable:!0});var i=t[e];Object.defineProperty(i,r,{enumerable:!0,configurable:!0,value:!0,writable:!0})}function EYe(t,e,r){if(e>r){var n=e;e=r,r=n}return!!t[e]&&Object.prototype.hasOwnProperty.call(t[e],r)}function SYe(t,e,r,n){var i={},a={},s={};return Oe(e,function(l){Oe(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Oe(e,function(l){var u=-1;Oe(l,function(h){var f=n(h);if(f.length){f=bu(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";rr();Dl();wu();o(TYe,"findType1Conflicts");o(wYe,"findType2Conflicts");o(kYe,"findOtherInnerSegmentNode");o(Bfe,"addConflict");o(EYe,"hasConflict");o(SYe,"verticalAlignment");o(CYe,"horizontalCompaction");o(AYe,"buildBlockGraph");o(_Ye,"findSmallestWidthAlignment");o(DYe,"alignCoordinates");o(RYe,"balance");o(Ffe,"positionX");o(LYe,"sep");o(NYe,"width")});function zfe(t){t=gS(t),MYe(t),xI(Ffe(t),function(e,r){t.node(r).x=e})}function MYe(t){var e=ld(t),r=t.graph().ranksep,n=0;Oe(e,function(i){var a=mo(lt(i,function(s){return t.node(s).height}));Oe(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var Gfe=O(()=>{"use strict";rr();wu();$fe();o(zfe,"position");o(MYe,"positionY")});function Cb(t,e){var r=e&&e.debugTiming?Ihe:Ohe;r("layout",()=>{var n=r(" buildLayoutGraph",()=>UYe(t));r(" runLayout",()=>IYe(n,r)),r(" updateInputGraph",()=>OYe(t,n))})}function IYe(t,e){e(" makeSpaceForEdgeLabels",()=>WYe(t)),e(" removeSelfEdges",()=>eje(t)),e(" acyclic",()=>Ahe(t)),e(" nestingGraph.run",()=>hfe(t)),e(" rank",()=>QI(gS(t))),e(" injectEdgeLabelProxies",()=>HYe(t)),e(" removeEmptyRanks",()=>Nhe(t)),e(" nestingGraph.cleanup",()=>dfe(t)),e(" normalizeRanks",()=>Lhe(t)),e(" assignRankMinMax",()=>YYe(t)),e(" removeEdgeLabelProxies",()=>jYe(t)),e(" normalize.run",()=>Uhe(t)),e(" parentDummyChains",()=>Ofe(t)),e(" addBorderSegments",()=>Bhe(t)),e(" order",()=>Mfe(t)),e(" insertSelfEdges",()=>tje(t)),e(" adjustCoordinateSystem",()=>zhe(t)),e(" position",()=>zfe(t)),e(" positionSelfEdges",()=>rje(t)),e(" removeBorderNodes",()=>JYe(t)),e(" normalize.undo",()=>Whe(t)),e(" fixupEdgeLabelCoords",()=>QYe(t)),e(" undoCoordinateSystem",()=>Ghe(t)),e(" translateGraph",()=>XYe(t)),e(" assignNodeIntersects",()=>KYe(t)),e(" reversePoints",()=>ZYe(t)),e(" acyclic.undo",()=>_he(t))}function OYe(t,e){Oe(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Oe(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Object.prototype.hasOwnProperty.call(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function UYe(t){var e=new wn({multigraph:!0,compound:!0}),r=tO(t.graph());return e.setGraph(Hf({},BYe,eO(r,PYe),A0(r,FYe))),Oe(t.nodes(),function(n){var i=tO(t.node(n));e.setNode(n,ad(eO(i,$Ye),zYe)),e.setParent(n,t.parent(n))}),Oe(t.edges(),function(n){var i=tO(t.edge(n));e.setEdge(n,Hf({},VYe,eO(i,GYe),A0(i,qYe)))}),e}function WYe(t){var e=t.graph();e.ranksep/=2,Oe(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function HYe(t){Oe(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};Tu(t,"edge-proxy",a,"_ep")}})}function YYe(t){var e=0;Oe(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=mo(e,n.maxRank))}),t.graph().maxRank=e}function jYe(t){Oe(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function XYe(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Oe(t.nodes(),function(h){u(t.node(h))}),Oe(t.edges(),function(h){var f=t.edge(h);Object.prototype.hasOwnProperty.call(f,"x")&&u(f)}),e-=s,n-=l,Oe(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Oe(t.edges(),function(h){var f=t.edge(h);Oe(f.points,function(d){d.x-=e,d.y-=n}),Object.prototype.hasOwnProperty.call(f,"x")&&(f.x-=e),Object.prototype.hasOwnProperty.call(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function KYe(t){Oe(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(II(n,a)),r.points.push(II(i,s))})}function QYe(t){Oe(t.edges(),function(e){var r=t.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function ZYe(t){Oe(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function JYe(t){Oe(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(ba(r.borderLeft)),s=t.node(ba(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Oe(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function eje(t){Oe(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function tje(t){var e=ld(t);Oe(e,function(r){var n=0;Oe(r,function(i,a){var s=t.node(i);s.order=a+n,Oe(s.selfEdges,function(l){Tu(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function rje(t){Oe(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function eO(t,e){return S0(A0(t,e),Number)}function tO(t){var e={};return Oe(t,function(r,n){e[n.toLowerCase()]=r}),e}var PYe,BYe,FYe,$Ye,zYe,GYe,VYe,qYe,Vfe=O(()=>{"use strict";rr();Dl();Fhe();qhe();MI();$I();ZI();pfe();Ife();Pfe();Gfe();wu();o(Cb,"layout");o(IYe,"runLayout");o(OYe,"updateInputGraph");PYe=["nodesep","edgesep","ranksep","marginx","marginy"],BYe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},FYe=["acyclicer","ranker","rankdir","align"],$Ye=["width","height"],zYe={width:0,height:0},GYe=["minlen","weight","width","height","labeloffset"],VYe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},qYe=["labelpos"];o(UYe,"buildLayoutGraph");o(WYe,"makeSpaceForEdgeLabels");o(HYe,"injectEdgeLabelProxies");o(YYe,"assignRankMinMax");o(jYe,"removeEdgeLabelProxies");o(XYe,"translateGraph");o(KYe,"assignNodeIntersects");o(QYe,"fixupEdgeLabelCoords");o(ZYe,"reversePointsForReversedEdges");o(JYe,"removeBorderNodes");o(eje,"removeSelfEdges");o(tje,"insertSelfEdges");o(rje,"positionSelfEdges");o(eO,"selectNumberAttrs");o(tO,"canonicalize")});var rO=O(()=>{"use strict";MI();Vfe();$I();ZI()});function Rl(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:nje(t),edges:ije(t)};return Dr(t.graph())||(e.value=Tn(t.graph())),e}function nje(t){return lt(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return Dr(r)||(i.value=r),Dr(n)||(i.parent=n),i})}function ije(t){return lt(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return Dr(e.name)||(n.name=e.name),Dr(r)||(n.value=r),n})}var nO=O(()=>{"use strict";rr();dS();o(Rl,"write");o(nje,"writeNodes");o(ije,"writeEdges")});var Vr,L0,Wfe,Hfe,bS,aje,Yfe,jfe,sje,B1,Ufe,Xfe,Kfe,Qfe,Zfe,Jfe=O(()=>{"use strict";xt();Dl();nO();Vr=new Map,L0=new Map,Wfe=new Map,Hfe=o(()=>{L0.clear(),Wfe.clear(),Vr.clear()},"clear"),bS=o((t,e)=>{let r=L0.get(e)||[];return K.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),aje=o((t,e)=>{let r=L0.get(e)||[];return K.info("Descendants of ",e," is ",r),K.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||bS(t.v,e)||bS(t.w,e)||r.includes(t.w):(K.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Yfe=o((t,e,r,n)=>{K.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),K.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Yfe(a,e,r,n);else{let s=e.node(a);K.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(K.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(K.debug("Setting parent",a,t),r.setParent(a,t)):(K.info("In copy ",t,"root",n,"data",e.node(t),n),K.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);K.debug("Copying Edges",l),l.forEach(u=>{K.info("Edge",u);let h=e.edge(u.v,u.w,u.name);K.info("Edge data",h,n);try{aje(u,n)?(K.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),K.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):K.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){K.error(f)}})}K.debug("Removing node",a),e.removeNode(a)})},"copy"),jfe=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)Wfe.set(i,t),n=[...n,...jfe(i,e)];return n},"extractDescendants"),sje=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),B1=o((t,e,r)=>{let n=e.children(t);if(K.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=B1(a,e,r),l=sje(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Ufe=o(t=>!Vr.has(t)||!Vr.get(t).externalConnections?t:Vr.has(t)?Vr.get(t).id:t,"getAnchorId"),Xfe=o((t,e)=>{if(!t||e>10){K.debug("Opting out, no graph ");return}else K.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(K.warn("Cluster identified",r," Replacement id in edges: ",B1(r,t,r)),L0.set(r,jfe(r,t)),Vr.set(r,{id:B1(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(K.debug("Cluster identified",r,L0),i.forEach(a=>{let s=bS(a.v,r),l=bS(a.w,r);s^l&&(K.warn("Edge: ",a," leaves cluster ",r),K.warn("Descendants of XXX ",r,": ",L0.get(r)),Vr.get(r).externalConnections=!0)})):K.debug("Not a cluster ",r,L0)});for(let r of Vr.keys()){let n=Vr.get(r).id,i=t.parent(n);i!==r&&Vr.has(i)&&!Vr.get(i).externalConnections&&(Vr.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);K.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),K.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(K.warn("Fix XXX",Vr,"ids:",r.v,r.w,"Translating: ",Vr.get(r.v)," --- ",Vr.get(r.w)),Vr.get(r.v)||Vr.get(r.w)){if(K.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Ufe(r.v),a=Ufe(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);Vr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);Vr.get(s).externalConnections=!0,n.toCluster=r.w}K.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),K.warn("Adjusted Graph",Rl(t)),Kfe(t,0),K.trace(Vr)},"adjustClustersAndEdges"),Kfe=o((t,e)=>{if(K.warn("extractor - ",e,Rl(t),t.children("D")),e>10){K.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){K.debug("Done, no node has children",t.nodes());return}K.debug("Nodes = ",r,e);for(let i of r)if(K.debug("Extracting node",i,Vr,Vr.has(i)&&!Vr.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!Vr.has(i))K.debug("Not a cluster",i,e);else if(!Vr.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){K.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";Vr.get(i)?.clusterData?.dir&&(s=Vr.get(i).clusterData.dir,K.warn("Fixing dir",Vr.get(i).clusterData.dir,s));let l=new wn({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});K.warn("Old graph before copy",Rl(t)),Yfe(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:Vr.get(i).clusterData,label:Vr.get(i).label,graph:l}),K.warn("New graph after copy node: (",i,")",Rl(l)),K.debug("Old graph after copy",Rl(t))}else K.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!Vr.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),K.debug(Vr);r=t.nodes(),K.warn("New list of nodes",r);for(let i of r){let a=t.node(i);K.warn(" Now next level",i,a),a?.clusterNode&&Kfe(a.graph,e+1)}},"extractor"),Qfe=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=Qfe(t,i);r=[...r,...a]}),r},"sorter"),Zfe=o(t=>Qfe(t,t.children()),"sortNodesByHierarchy")});var tde={};vr(tde,{render:()=>oje});var ede,oje,rde=O(()=>{"use strict";rO();nO();Dl();GM();$t();Jfe();yE();oE();zM();xt();gb();jt();ede=o(async(t,e,r,n,i,a)=>{K.warn("Graph in recursive render:XAX",Rl(e),i);let s=e.graph().rankdir;K.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?K.info("Recursive render XXX",e.nodes()):K.info("No nodes found for",e),e.edges().length>0&&K.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));K.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(K.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(K.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){K.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let T=await ede(d,v.graph,r,n,e.node(y),a),E=T.elem;rt(v,E),v.diff=T.diff||0,K.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),xoe(E,v)}else e.children(y).length>0?(K.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),K.trace(B1(v.id,e)),Vr.set(v.id,{id:B1(v.id,e),node:v})):(K.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await y1(d,e.node(y),{config:a,dir:s}))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);K.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),K.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),K.info("Fix",Vr,"ids:",v.v,v.w,"Translating: ",Vr.get(v.v),Vr.get(v.w)),await fE(f,x)});await Promise.all(y)},"processEdges")(),K.info("Graph before layout:",JSON.stringify(Rl(e))),K.info("############################################# XXX"),K.info("### Layout ### XXX"),K.info("############################################# XXX"),Cb(e),K.info("Graph after layout:",JSON.stringify(Rl(e)));let m=0,{subGraphTitleTotalMargin:g}=Lh(a);return await Promise.all(Zfe(e).map(async function(y){let v=e.node(y);if(K.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,K.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),Vr.get(v.id).node=v,vb(v);else if(e.children(y).length>0){K.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,T=b-x||0;K.debug("OffsetY",T,"labelHeight",b,"halfPadding",x),await g1(u,v),Vr.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,K.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),vb(v)}})),e.edges().forEach(function(y){let v=e.edge(y);K.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(E=>E.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let T=pE(h,v,Vr,r,x,b,n);dE(v,T)}),e.nodes().forEach(function(y){let v=e.node(y);K.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),K.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),oje=o(async(t,e)=>{let r=new wn({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");mE(n,t.markers,t.type,t.diagramId),boe(),voe(),hoe(),Hfe(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),K.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeStart="none",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",p.arrowTypeStart="none",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyct.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,s=!0,l=!1;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return s=u.done,u},"n"),e:o(function(u){l=!0,a=u},"e"),f:o(function(){try{s||r.return==null||r.return()}finally{if(l)throw a}},"f")}}function L0e(t,e,r){return(e=N0e(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function hje(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function fje(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,i,a,s,l=[],u=!0,h=!1;try{if(a=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(f){h=!0,i=f}finally{try{if(!u&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(h)throw i}}return l}}function dje(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pje(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wi(t,e){return lje(t)||fje(t,e)||eB(t,e)||dje()}function WS(t){return cje(t)||hje(t)||eB(t)||pje()}function mje(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}function N0e(t){var e=mje(t,"string");return typeof e=="symbol"?e:e+""}function aa(t){"@babel/helpers - typeof";return aa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},aa(t)}function eB(t,e){if(t){if(typeof t=="string")return IP(t,e);var r={}.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?IP(t,e):void 0}}function Zb(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Jb(){if(ade)return iO;ade=1;function t(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}return o(t,"isObject"),iO=t,iO}function Fje(){if(sde)return aO;sde=1;var t=typeof TS=="object"&&TS&&TS.Object===Object&&TS;return aO=t,aO}function sC(){if(ode)return sO;ode=1;var t=Fje(),e=typeof self=="object"&&self&&self.Object===Object&&self,r=t||e||Function("return this")();return sO=r,sO}function $je(){if(lde)return oO;lde=1;var t=sC(),e=o(function(){return t.Date.now()},"now");return oO=e,oO}function zje(){if(cde)return lO;cde=1;var t=/\s/;function e(r){for(var n=r.length;n--&&t.test(r.charAt(n)););return n}return o(e,"trimmedEndIndex"),lO=e,lO}function Gje(){if(ude)return cO;ude=1;var t=zje(),e=/^\s+/;function r(n){return n&&n.slice(0,t(n)+1).replace(e,"")}return o(r,"baseTrim"),cO=r,cO}function nB(){if(hde)return uO;hde=1;var t=sC(),e=t.Symbol;return uO=e,uO}function Vje(){if(fde)return hO;fde=1;var t=nB(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,i=t?t.toStringTag:void 0;function a(s){var l=r.call(s,i),u=s[i];try{s[i]=void 0;var h=!0}catch{}var f=n.call(s);return h&&(l?s[i]=u:delete s[i]),f}return o(a,"getRawTag"),hO=a,hO}function qje(){if(dde)return fO;dde=1;var t=Object.prototype,e=t.toString;function r(n){return e.call(n)}return o(r,"objectToString"),fO=r,fO}function G0e(){if(pde)return dO;pde=1;var t=nB(),e=Vje(),r=qje(),n="[object Null]",i="[object Undefined]",a=t?t.toStringTag:void 0;function s(l){return l==null?l===void 0?i:n:a&&a in Object(l)?e(l):r(l)}return o(s,"baseGetTag"),dO=s,dO}function Uje(){if(mde)return pO;mde=1;function t(e){return e!=null&&typeof e=="object"}return o(t,"isObjectLike"),pO=t,pO}function eT(){if(gde)return mO;gde=1;var t=G0e(),e=Uje(),r="[object Symbol]";function n(i){return typeof i=="symbol"||e(i)&&t(i)==r}return o(n,"isSymbol"),mO=n,mO}function Wje(){if(yde)return gO;yde=1;var t=Gje(),e=Jb(),r=eT(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;function u(h){if(typeof h=="number")return h;if(r(h))return n;if(e(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=e(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=t(h);var d=a.test(h);return d||s.test(h)?l(h.slice(2),d?2:8):i.test(h)?n:+h}return o(u,"toNumber"),gO=u,gO}function Hje(){if(vde)return yO;vde=1;var t=Jb(),e=$je(),r=Wje(),n="Expected a function",i=Math.max,a=Math.min;function s(l,u,h){var f,d,p,m,g,y,v=0,x=!1,b=!1,T=!0;if(typeof l!="function")throw new TypeError(n);u=r(u)||0,t(h)&&(x=!!h.leading,b="maxWait"in h,p=b?i(r(h.maxWait)||0,u):p,T="trailing"in h?!!h.trailing:T);function E(_){var D=f,M=d;return f=d=void 0,v=_,m=l.apply(M,D),m}o(E,"invokeFunc");function w(_){return v=_,g=setTimeout(A,u),x?E(_):m}o(w,"leadingEdge");function k(_){var D=_-y,M=_-v,R=u-D;return b?a(R,p-M):R}o(k,"remainingWait");function S(_){var D=_-y,M=_-v;return y===void 0||D>=u||D<0||b&&M>=p}o(S,"shouldInvoke");function A(){var _=e();if(S(_))return L(_);g=setTimeout(A,k(_))}o(A,"timerExpired");function L(_){return g=void 0,T&&f?E(_):(f=d=void 0,m)}o(L,"trailingEdge");function I(){g!==void 0&&clearTimeout(g),v=0,f=y=d=g=void 0}o(I,"cancel");function N(){return g===void 0?m:L(e())}o(N,"flush");function C(){var _=e(),D=S(_);if(f=arguments,d=this,y=_,D){if(g===void 0)return w(y);if(b)return clearTimeout(g),g=setTimeout(A,u),E(y)}return g===void 0&&(g=setTimeout(A,u)),m}return o(C,"debounced"),C.cancel=I,C.flush=N,C}return o(s,"debounce"),yO=s,yO}function Qje(t,e,r,n,i){var a=i*Math.PI/180,s=Math.cos(a)*(t-r)-Math.sin(a)*(e-n)+r,l=Math.sin(a)*(t-r)+Math.cos(a)*(e-n)+n;return{x:s,y:l}}function Jje(t,e,r){if(r===0)return t;var n=(e.x1+e.x2)/2,i=(e.y1+e.y2)/2,a=e.w/e.h,s=1/a,l=Qje(t.x,t.y,n,i,r),u=Zje(l.x,l.y,n,i,a,s);return{x:u.x,y:u.y}}function uXe(){return kde||(kde=1,(function(t,e){(function(){var r,n,i,a,s,l,u,h,f,d,p,m,g,y,v;i=Math.floor,d=Math.min,n=o(function(x,b){return xb?1:0},"defaultCmp"),f=o(function(x,b,T,E,w){var k;if(T==null&&(T=0),w==null&&(w=n),T<0)throw new Error("lo must be non-negative");for(E==null&&(E=x.length);TI;0<=I?L++:L--)A.push(L);return A}).apply(this).reverse(),S=[],E=0,w=k.length;EN;0<=N?++A:--A)C.push(s(x,T));return C},"nsmallest"),y=o(function(x,b,T,E){var w,k,S;for(E==null&&(E=n),w=x[T];T>b;){if(S=T-1>>1,k=x[S],E(w,k)<0){x[T]=k,T=S;continue}break}return x[T]=w},"_siftdown"),v=o(function(x,b,T){var E,w,k,S,A;for(T==null&&(T=n),w=x.length,A=b,k=x[b],E=2*b+1;E-1}return o(e,"listCacheHas"),HO=e,HO}function nQe(){if(upe)return YO;upe=1;var t=fC();function e(r,n){var i=this.__data__,a=t(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return o(e,"listCacheSet"),YO=e,YO}function iQe(){if(hpe)return jO;hpe=1;var t=JKe(),e=eQe(),r=tQe(),n=rQe(),i=nQe();function a(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l-1&&n%1==0&&n0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function vme(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:pZe,e=arguments.length>1?arguments[1]:void 0,r=0;r0?C=D:N=D;while(Math.abs(_)>s&&++M=a?b(I,M):R===0?M:E(I,N,N+h)}o(w,"getTForX");var k=!1;function S(){k=!0,(t!==e||r!==n)&&T()}o(S,"precompute");var A=o(function(N){return k||S(),t===e&&r===n?N:N===0?0:N===1?1:v(w(N),e,n)},"f");A.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var L="generateBezier("+[t,e,r,n]+")";return A.toString=function(){return L},A}function e0e(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function t0e(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function z1(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=t0e(t,i),l=t0e(e,i);if(Nt(s)&&Nt(l))return e0e(a,s,l,r,n);if($n(s)&&$n(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=$S[m].apply(null,g)):s.easingImpl=$S[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var T={};Rb(x.x,b.x)&&(T.x=z1(x.x,b.x,v,y)),Rb(x.y,b.y)&&(T.y=z1(x.y,b.y,v,y)),t.position(T)}var E=s.startPan,w=s.pan,k=a.pan,S=w!=null&&n;S&&(Rb(E.x,w.x)&&(k.x=z1(E.x,w.x,v,y)),Rb(E.y,w.y)&&(k.y=z1(E.y,w.y,v,y)),t.emit("pan"));var A=s.startZoom,L=s.zoom,I=L!=null&&n;I&&(Rb(A,L)&&(a.zoom=qb(a.minZoom,z1(A,L,v,y),a.maxZoom)),t.emit("zoom")),(S||I)&&t.emit("viewport");var N=s.style;if(N&&N.length>0&&i){for(var C=0;C=0;S--){var A=k[S];A()}k.splice(0,k.length)},"callbacks"),b=m.length-1;b>=0;b--){var T=m[b],E=T._private;if(E.stopped){m.splice(b,1),E.hooked=!1,E.playing=!1,E.started=!1,x(E.frames);continue}!E.playing&&!E.applying||(E.playing&&E.applying&&(E.applying=!1),E.started||_Ze(f,T,t),AZe(f,T,t,d),E.applying&&(E.applying=!1),x(E.frames),E.step!=null&&E.step(t),T.completed()&&(m.splice(b,1),E.hooked=!1,E.playing=!1,E.started=!1,x(E.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function Pme(t){this.options=pr({},PZe,BZe,t)}function Bme(t){this.options=pr({},FZe,t)}function Fme(t){this.options=pr({},$Ze,t)}function bC(t){this.options=pr({},zZe,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function Vme(t){this.options=pr({},tJe,t)}function xB(t){this.options=pr({},rJe,t)}function qme(t){this.options=pr({},nJe,t)}function Ume(t){this.options=pr({},iJe,t)}function Wme(t){this.options=t,this.notifications=0}function jme(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function TB(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(oJe(t,e,r,n,i),{cx:WP,cy:HP,radius:P0,startX:Hme,startY:Yme,stopX:YP,stopY:jP,startAngle:Su.ang+Math.PI/2*F0,endAngle:Ll.ang-Math.PI/2*F0,counterClockwise:VS})}function Xme(t){var e=[];if(t!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(a,n/2,i/2);t.beginPath(),t.moveTo(e+s,r),t.lineTo(e+n-s,r),t.quadraticCurveTo(e+n,r,e+n,r+s),t.lineTo(e+n,r+i-s),t.quadraticCurveTo(e+n,r+i,e+n-s,r+i),t.lineTo(e+s,r+i),t.quadraticCurveTo(e,r+i,e,r+i-s),t.lineTo(e,r+s),t.quadraticCurveTo(e,r,e+s,r),t.closePath()}function w0e(t,e,r){var n=t.createShader(e);if(t.shaderSource(n,r),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(n));return n}function KJe(t,e,r){var n=w0e(t,t.VERTEX_SHADER,e),i=w0e(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,n),t.attachShader(a,i),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new Error("Could not initialize shaders");return a}function QJe(t,e,r){r===void 0&&(r=e);var n=t.makeOffscreenCanvas(e,r),i=n.context=n.getContext("2d");return n.clear=function(){return i.clearRect(0,0,n.width,n.height)},n.clear(),n}function EB(t){var e=t.pixelRatio,r=t.cy.zoom(),n=t.cy.pan();return{zoom:r*e,pan:{x:n.x*e,y:n.y*e}}}function ZJe(t){var e=t.pixelRatio,r=t.cy.zoom();return r*e}function JJe(t,e,r,n,i){var a=n*r+e.x,s=i*r+e.y;return s=Math.round(t.canvasHeight-s),[a,s]}function eet(t){return t.pstyle("background-fill").value!=="solid"||t.pstyle("background-image").strValue!=="none"?!1:t.pstyle("border-width").value===0||t.pstyle("border-opacity").value===0?!0:t.pstyle("border-style").value==="solid"}function tet(t,e){if(t.length!==e.length)return!1;for(var r=0;r>0&255)/255,r[1]=(t>>8&255)/255,r[2]=(t>>16&255)/255,r[3]=(t>>24&255)/255,r}function ret(t){return t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)}function net(t,e){var r=t.createTexture();return r.buffer=function(n){t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_NEAREST),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.generateMipmap(t.TEXTURE_2D),t.bindTexture(t.TEXTURE_2D,null)},r.deleteTexture=function(){t.deleteTexture(r)},r}function lge(t,e){switch(e){case"float":return[1,t.FLOAT,4];case"vec2":return[2,t.FLOAT,4];case"vec3":return[3,t.FLOAT,4];case"vec4":return[4,t.FLOAT,4];case"int":return[1,t.INT,4];case"ivec2":return[2,t.INT,4]}}function cge(t,e,r){switch(e){case t.FLOAT:return new Float32Array(r);case t.INT:return new Int32Array(r)}}function iet(t,e,r,n,i,a){switch(e){case t.FLOAT:return new Float32Array(r.buffer,a*n,i);case t.INT:return new Int32Array(r.buffer,a*n,i)}}function aet(t,e,r,n){var i=lge(t,e),a=Wi(i,2),s=a[0],l=a[1],u=cge(t,l,n),h=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,h),t.bufferData(t.ARRAY_BUFFER,u,t.STATIC_DRAW),l===t.FLOAT?t.vertexAttribPointer(r,s,l,!1,0,0):l===t.INT&&t.vertexAttribIPointer(r,s,l,0,0),t.enableVertexAttribArray(r),t.bindBuffer(t.ARRAY_BUFFER,null),h}function Eu(t,e,r,n){var i=lge(t,r),a=Wi(i,3),s=a[0],l=a[1],u=a[2],h=cge(t,l,e*s),f=s*u,d=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,d),t.bufferData(t.ARRAY_BUFFER,e*f,t.DYNAMIC_DRAW),t.enableVertexAttribArray(n),l===t.FLOAT?t.vertexAttribPointer(n,s,l,!1,f,0):l===t.INT&&t.vertexAttribIPointer(n,s,l,f,0),t.vertexAttribDivisor(n,1),t.bindBuffer(t.ARRAY_BUFFER,null);for(var p=new Array(e),m=0;mnge?(ket(t),e.call(t,a)):(Eet(t),dge(t,a,$b.SCREEN)))}}{var r=t.matchCanvasSize;t.matchCanvasSize=function(a){r.call(t,a),t.pickingFrameBuffer.setFramebufferAttachmentSizes(t.canvasWidth,t.canvasHeight),t.pickingFrameBuffer.needsDraw=!0}}t.findNearestElements=function(a,s,l,u){return Let(t,a,s)};{var n=t.invalidateCachedZSortedEles;t.invalidateCachedZSortedEles=function(){n.call(t),t.pickingFrameBuffer.needsDraw=!0}}{var i=t.notify;t.notify=function(a,s){i.call(t,a,s),a==="viewport"||a==="bounds"?t.pickingFrameBuffer.needsDraw=!0:a==="background"&&t.drawing.invalidate(s,{type:"node-body"})}}}function ket(t){var e=t.data.contexts[t.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function Eet(t){var e=o(function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,t.canvasWidth,t.canvasHeight),n.restore()},"clear");e(t.data.contexts[t.NODE]),e(t.data.contexts[t.DRAG])}function Cet(t){var e=t.canvasWidth,r=t.canvasHeight,n=EB(t),i=n.pan,a=n.zoom,s=_P();US(s,s,[i.x,i.y]),KP(s,s,[a,a]);var l=_P();uet(l,e,r);var u=_P();return cet(u,l,s),u}function fge(t,e){var r=t.canvasWidth,n=t.canvasHeight,i=EB(t),a=i.pan,s=i.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,r,n),e.translate(a.x,a.y),e.scale(s,s)}function Aet(t,e){t.drawSelectionRectangle(e,function(r){return fge(t,r)})}function _et(t){var e=t.data.contexts[t.NODE];e.save(),fge(t,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}function Det(t){var e=o(function(i,a,s){for(var l=i.atlasManager.getAtlasCollection(a),u=t.data.contexts[t.NODE],h=l.atlases,f=0;f=0&&E.add(S)}return E}function Let(t,e,r){var n=Ret(t,e,r),i=t.getCachedZSortedEles(),a,s,l=xo(n),u;try{for(l.s();!(u=l.n()).done;){var h=u.value,f=i[h];if(!a&&f.isNode()&&(a=f),!s&&f.isEdge()&&(s=f),a&&s)break}}catch(d){l.e(d)}finally{l.f()}return[a,s].filter(Boolean)}function MP(t,e,r){var n=t.drawing;e+=1,r.isNode()?(n.drawNode(r,e,"node-underlay"),n.drawNode(r,e,"node-body"),n.drawTexture(r,e,"label"),n.drawNode(r,e,"node-overlay")):(n.drawEdgeLine(r,e),n.drawEdgeArrow(r,e,"source"),n.drawEdgeArrow(r,e,"target"),n.drawTexture(r,e,"label"),n.drawTexture(r,e,"edge-source-label"),n.drawTexture(r,e,"edge-target-label"))}function dge(t,e,r){var n;t.webglDebug&&(n=performance.now());var i=t.drawing,a=0;if(r.screen&&t.data.canvasNeedsRedraw[t.SELECT_BOX]&&Aet(t,e),t.data.canvasNeedsRedraw[t.NODE]||r.picking){var s=t.data.contexts[t.WEBGL];r.screen?(s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA)):s.disable(s.BLEND),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var l=Cet(t),u=t.getCachedZSortedEles();if(a=u.length,i.startFrame(l,r),r.screen){for(var h=0;h{"use strict";o(IP,"_arrayLikeToArray");o(lje,"_arrayWithHoles");o(cje,"_arrayWithoutHoles");o(Sd,"_classCallCheck");o(uje,"_defineProperties");o(Cd,"_createClass");o(xo,"_createForOfIteratorHelper");o(L0e,"_defineProperty$1");o(hje,"_iterableToArray");o(fje,"_iterableToArrayLimit");o(dje,"_nonIterableRest");o(pje,"_nonIterableSpread");o(Wi,"_slicedToArray");o(WS,"_toConsumableArray");o(mje,"_toPrimitive");o(N0e,"_toPropertyKey");o(aa,"_typeof");o(eB,"_unsupportedIterableToArray");na=typeof window>"u"?null:window,nde=na?na.navigator:null;na&&na.document;gje=aa(""),M0e=aa({}),yje=aa(function(){}),vje=typeof HTMLElement>"u"?"undefined":aa(HTMLElement),Kb=o(function(e){return e&&e.instanceString&&Ei(e.instanceString)?e.instanceString():null},"instanceStr"),or=o(function(e){return e!=null&&aa(e)==gje},"string"),Ei=o(function(e){return e!=null&&aa(e)===yje},"fn"),$n=o(function(e){return!jo(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),sn=o(function(e){return e!=null&&aa(e)===M0e&&!$n(e)&&e.constructor===Object},"plainObject"),xje=o(function(e){return e!=null&&aa(e)===M0e},"object"),Nt=o(function(e){return e!=null&&aa(e)===aa(1)&&!isNaN(e)},"number"),bje=o(function(e){return Nt(e)&&Math.floor(e)===e},"integer"),HS=o(function(e){if(vje!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),jo=o(function(e){return Qb(e)||I0e(e)},"elementOrCollection"),Qb=o(function(e){return Kb(e)==="collection"&&e._private.single},"element"),I0e=o(function(e){return Kb(e)==="collection"&&!e._private.single},"collection"),tB=o(function(e){return Kb(e)==="core"},"core"),O0e=o(function(e){return Kb(e)==="stylesheet"},"stylesheet"),Tje=o(function(e){return Kb(e)==="event"},"event"),xd=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),wje=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),kje=o(function(e){return sn(e)&&Nt(e.x1)&&Nt(e.x2)&&Nt(e.y1)&&Nt(e.y2)},"boundingBox"),Eje=o(function(e){return xje(e)&&Ei(e.then)},"promise"),Sje=o(function(){return nde&&nde.userAgent.match(/msie|trident|edge/i)},"ms"),J1=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),Nje=o(function(e,r){return-1*B0e(e,r)},"descending"),pr=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+_je+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),Oje=o(function(e){var r,n=new RegExp("^"+Cje+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),Pje=o(function(e){return Bje[e.toLowerCase()]},"colorname2tuple"),F0e=o(function(e){return($n(e)?e:null)||Pje(e)||Mje(e)||Oje(e)||Ije(e)},"color2tuple"),Bje={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},$0e=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:B0,n=r,i;i=e.next(),!i.done;)n=n*q0e+i.value|0;return n},"hashIterableInts"),zb=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:B0;return r*q0e+e|0},"hashInt"),Gb=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W1;return(r<<5)+r+e|0},"hashIntAlt"),Xje=o(function(e,r){return e*2097152+r},"combineHashes"),hd=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),wS=o(function(e,r){return[zb(e[0],r[0]),Gb(e[1],r[1])]},"hashArrays"),xde=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i=0;i--)e[i]===r&&e.splice(i,1)},"removeFromArray"),sB=o(function(e){e.splice(0,e.length)},"clearArray"),aXe=o(function(e,r){for(var n=0;n"u"?"undefined":aa(Set))!==oXe?Set:lXe,oC=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!tB(e)){ui("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){ui("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new ry,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];$n(r.classes)?h=r.classes:or(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;f0;){var k=b.pop(),S=v(k),A=k.id();if(p[A]=S,S!==1/0)for(var L=k.neighborhood().intersect(g),I=0;I0)for(B.unshift(P);d[G];){var $=d[G];B.unshift($.edge),B.unshift($.node),F=$.node,G=F.id()}return l.spawn(B)},"pathTo")}},"dijkstra")},mXe={kruskal:o(function(e){e=e||function(T){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(E){for(var w=0;w0;){if(w(),S++,E===f){for(var A=[],L=a,I=f,N=x[I];A.unshift(L),N!=null&&A.unshift(N),L=v[I],L!=null;)I=L.id(),N=x[I];return{found:!0,distance:d[E],path:this.spawn(A),steps:S}}m[E]=!0;for(var C=T._private.edges,_=0;_N&&(g[I]=N,b[I]=L,T[I]=w),!a){var C=L*f+A;!a&&g[C]>N&&(g[C]=N,b[C]=A,T[C]=w)}}}for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:s,$e=T(we),fe=[],Ke=$e;;){if(Ke==null)return r.spawn();var Te=b(Ke),Be=Te.edge,Ue=Te.pred;if(fe.unshift(Ke[0]),Ke.same(_e)&&fe.length>0)break;Be!=null&&fe.unshift(Be),Ke=Ue}return u.spawn(fe)},"pathTo"),k=0;k=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=kXe(a,e,r),n--}return r},"contractUntil"),EXe={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(B){return B.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/wXe);if(a<2){ui("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),RXe=o(function(e){return Math.PI*e/180},"deg2rad"),kS=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),oB=Math.log2||function(t){return Math.log(t)/Math.log(2)},lB=o(function(e){return e>0?1:e<0?-1:0},"signum"),G0=o(function(e,r){return Math.sqrt(O0(e,r))},"dist"),O0=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),LXe=o(function(e){for(var r=e.length,n=0,i=0;i=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),MXe=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),IXe=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),OXe=o(function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},"updateBoundingBox"),Q0e=o(function(e,r,n){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),OS=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),PS=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=Wi(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Sde=o(function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),cB=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),md=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),Cde=o(function(e,r){return md(e,r.x,r.y)},"pointInBoundingBox"),Z0e=o(function(e,r){return md(e,r.x1,r.y1)&&md(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),PXe=(TO=Math.hypot)!==null&&TO!==void 0?TO:function(t,e){return Math.sqrt(t*t+e*e)};o(BXe,"inflatePolygon");o(FXe,"miterBox");J0e=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?Td(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=gd(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var T=n+f+l,E=i-d+h-l,w=T,k=i+d-h+l;if(g=gd(e,r,n,i,T,E,w,k,!1),g.length>0)return g}if(p){var S=n-f+h-l,A=i+d+l,L=n+f-h+l,I=A;if(g=gd(e,r,n,i,S,A,L,I,!1),g.length>0)return g}if(m){var N=n-f-l,C=i-d+h-l,_=N,D=i+d-h+l;if(g=gd(e,r,n,i,N,C,_,D,!1),g.length>0)return g}var M;{var R=n-f+h,P=i-d+h;if(M=Ib(e,r,n,i,R,P,h+l),M.length>0&&M[0]<=R&&M[1]<=P)return[M[0],M[1]]}{var B=n+f-h,F=i-d+h;if(M=Ib(e,r,n,i,B,F,h+l),M.length>0&&M[0]>=B&&M[1]<=F)return[M[0],M[1]]}{var G=n+f-h,$=i+d-h;if(M=Ib(e,r,n,i,G,$,h+l),M.length>0&&M[0]>=G&&M[1]>=$)return[M[0],M[1]]}{var V=n-f+h,X=i+d-h;if(M=Ib(e,r,n,i,V,X,h+l),M.length>0&&M[0]<=V&&M[1]>=X)return[M[0],M[1]]}return[]},"roundRectangleIntersectLine"),$Xe=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),zXe=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(ef.x2||rf.y2)},"inBezierVicinity"),GXe=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),VXe=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),qXe=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];VXe(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,T,E,w=0;w=0?Eh?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),vo=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),Bh=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=KS(f,-h);y=XS(v)}else y=f;return vo(e,r,y)},"pointInsidePolygon"),WXe=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var T=b[0]*u[0]+e,E=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[T,E];var w=b[1]*u[0]+e,k=b[1]*u[1]+r;return[T,E,w,k]}else return[T,E]},"intersectLineCircle"),wO=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),gd=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var T=v/b,E=x/b,w=.001,k=0-w,S=1+w;return k<=T&&T<=S&&k<=E&&E<=S?[e+T*d,r+T*g]:h?[e+T*d,r+T*g]:[]}else return v===0||x===0?wO(e,n,l)===l?[l,u]:wO(e,n,a)===a?[a,s]:wO(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),YXe=o(function(e,r,n,i,a){var s=[],l=i/2,u=a/2,h=r,f=n;s.push({x:h+l*e[0],y:f+u*e[1]});for(var d=1;d0){var y=KS(d,-u);m=XS(y)}else m=d}else m=n;for(var v,x,b,T,E=0;E2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=E)},"set"),get:o(function(T){return h[T]},"get")},p=0;p0?M=D.edgesTo(_)[0]:M=_.edgesTo(D)[0];var R=i(M);_=_.id(),S[_]>S[N]+R&&(S[_]=S[N]+R,A.nodes.indexOf(_)<0?A.push(_):A.updateItem(_),k[_]=0,w[_]=[]),S[_]==S[N]+R&&(k[_]=k[_]+k[N],w[_].push(N))}else for(var P=0;P0;){for(var $=E.pop(),V=0;V0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),lKe=o(function(e,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:hKe,l=i,u,h,f=0;f=2?Ab(e,r,n,0,Lde,fKe):Ab(e,r,n,0,Rde)},"euclidean"),squaredEuclidean:o(function(e,r,n){return Ab(e,r,n,0,Lde)},"squaredEuclidean"),manhattan:o(function(e,r,n){return Ab(e,r,n,0,Rde)},"manhattan"),max:o(function(e,r,n){return Ab(e,r,n,-1/0,dKe)},"max")};ey["squared-euclidean"]=ey.squaredEuclidean;ey.squaredeuclidean=ey.squaredEuclidean;o(cC,"clusteringDistance");pKe=qa({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),hB=o(function(e){return pKe(e)},"setOptions"),QS=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return cC(e,i.length,l,u,h,f)},"getDist"),EO=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),yKe=o(function(e,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),Bde=o(function(e,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=Bde(e,r,n),i},"assign"),Fde=o(function(e){for(var r=this.cy(),n=this.nodes(),i=DKe(e),a={},s=0;s=N?(C=N,N=D,_=M):D>C&&(C=D);for(var R=0;R0?1:0;S[L%i.minIterations*l+V]=X,$+=X}if($>0&&(L>=i.minIterations-1||L==i.maxIterations-1)){for(var Q=0,H=0;H1||k>1)&&(l=!0),d[T]=[],b.outgoers().forEach(function(A){A.isEdge()&&d[T].push(A.id())})}else p[T]=[void 0,b.target().id()]}):s.forEach(function(b){var T=b.id();if(b.isNode()){var E=b.degree(!0);E%2&&(u?h?l=!0:h=T:u=T),d[T]=[],b.connectedEdges().forEach(function(w){return d[T].push(w.id())})}else p[T]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(T){for(var E=T,w=[T],k,S,A;d[E].length;)k=d[E].shift(),S=p[k][0],A=p[k][1],E!=A?(d[A]=d[A].filter(function(L){return L!=k}),E=A):!a&&E!=S&&(d[S]=d[S].filter(function(L){return L!=k}),E=S),w.unshift(k),w.unshift(E);return w},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},SS=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(T){var E=T.id(),w=T.connectedEdges().intersection(e);v.merge(T),r[E].cutVertex?v.merge(w.filter(function(k){return k.isLoop()})):v.merge(w)})}),a.push(v)},"buildComponent"),h=o(function(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,T;y.forEach(function(E){v=E.source().id(),x=E.target().id(),b=v===m?x:v,b!==g&&(T=E.id(),l[T]||(l[T]=!0,s.push({x:m,y:b,edge:E})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(h(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),BKe={hopcroftTarjanBiconnected:SS,htbc:SS,htb:SS,hopcroftTarjanBiconnectedComponents:SS},CS=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||l(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),FKe={tarjanStronglyConnected:CS,tsc:CS,tscc:CS,tarjanStronglyConnectedComponents:CS},sme={};[Vb,pXe,mXe,yXe,xXe,TXe,EXe,QXe,K1,Q1,BP,uKe,kKe,AKe,IKe,PKe,BKe,FKe].forEach(function(t){pr(sme,t)});ome=0,lme=1,cme=2,Tc=o(function(e){if(!(this instanceof Tc))return new Tc(e);this.id="Thenable/1.0.7",this.state=ome,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Tc.prototype={fulfill:o(function(e){return $de(this,lme,"fulfillValue",e)},"fulfill"),reject:o(function(e){return $de(this,cme,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Tc;return n.onFulfilled.push(Gde(e,i,"fulfill")),n.onRejected.push(Gde(r,i,"reject")),ume(n),i.proxy},"then")};$de=o(function(e,r,n,i){return e.state===ome&&(e.state=r,e[n]=i,ume(e)),e},"deliver"),ume=o(function(e){e.state===lme?zde(e,"onFulfilled",e.fulfillValue):e.state===cme&&zde(e,"onRejected",e.rejectReason)},"execute"),zde=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){$n(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};BS.className=BS.classNames=BS.classes;an={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:ia,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};an.variable="(?:[\\w-.]|(?:\\\\"+an.metaChar+"))+";an.className="(?:[\\w-]|(?:\\\\"+an.metaChar+"))+";an.value=an.string+"|"+an.number;an.id=an.variable;(function(){var t,e,r;for(t=an.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(an.comparatorOp+="|\\!"+e)})();Nn=o(function(){return{checks:[]}},"newQuery"),qt={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},GP=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return Nje(t.selector,e.selector)}),OQe=(function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return En("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return En("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&En("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),GQe=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return or(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case qt.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case qt.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case qt.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case qt.DATA_EXIST:{var T=f.field;return"["+T+"]"}case qt.META_COMPARE:{var E=f.operator,w=f.field;return"[["+w+n(e(E))+r(m)+"]]"}case qt.STATE:return m;case qt.ID:return"#"+m;case qt.CLASS:return"."+m;case qt.PARENT:case qt.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case qt.ANCESTOR:case qt.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case qt.COMPOUND_SPLIT:{var k=a(f.left,d),S=a(f.subject,d),A=a(f.right,d);return k+(k.length>0?" ":"")+S+A}case qt.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e1&&arguments[1]!==void 0?arguments[1]:!0;return mB(this,t,e,vme)};o(xme,"addParent");ty.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return mB(this,t,e,xme)};o(XQe,"addParentAndChildren");ty.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return mB(this,t,e,XQe)};ty.ancestors=ty.parents;Wb=bme={data:kn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:kn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:kn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:kn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:kn.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:kn.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};Wb.attr=Wb.data;Wb.removeAttr=Wb.removeData;KQe=bme,pC={};o(wP,"defineDegreeFunction");pr(pC,{degree:wP(function(t,e){return e.source().same(e.target())?2:1}),indegree:wP(function(t,e){return e.target().same(t)?1:0}),outdegree:wP(function(t,e){return e.source().same(t)?1:0})});o($1,"defineDegreeBoundsFunction");pr(pC,{minDegree:$1("degree",function(t,e){return te}),minIndegree:$1("indegree",function(t,e){return te}),minOutdegree:$1("outdegree",function(t,e){return te})});pr(pC,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};bc.modelPosition=bc.point=bc.position;bc.modelPositions=bc.points=bc.positions;bc.renderedPoint=bc.renderedPosition;bc.relativePoint=bc.relativePosition;QQe=Tme;Z1=Ad={};Ad.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Ad.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Ad.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(L,I,N){var C=0,_=0,D=I+N;return L>0&&D>0&&(C=I/D*L,_=N/D*L),{biasDiff:C,biasComplementDiff:_}}o(m,"computeBiasValues");function g(L,I,N,C){if(N.units==="%")switch(C){case"width":return L>0?N.pfValue*L:0;case"height":return I>0?N.pfValue*I:0;case"average":return L>0&&I>0?N.pfValue*(L+I)/2:0;case"min":return L>0&&I>0?L>I?N.pfValue*I:N.pfValue*L:0;case"max":return L>0&&I>0?L>I?N.pfValue*L:N.pfValue*I:0;default:return 0}else return N.units==="px"?N.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var T=m(f.width.val-d.w,y,v),E=T.biasDiff,w=T.biasComplementDiff,k=m(f.height.val-d.h,x,b),S=k.biasDiff,A=k.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-E+d.x1+d.x2+w)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-S+d.y1+d.y2+A)/2}o(r,"update");for(var n=0;ne.x2?i:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),dd=o(function(e,r){return r==null?e:xc(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),_b=o(function(e,r,n){return yo(e,r,n)},"prefixedProperty"),AS=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,OS(d,1),xc(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),kP=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=_b(s,"labelWidth",n),d=_b(s,"labelHeight",n),p=_b(s,"labelX",n),m=_b(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,T=r.pstyle("text-border-width").pfValue,E=T/2,w=r.pstyle("text-background-padding").pfValue,k=2,S=d,A=f,L=A/2,I=S/2,N,C,_,D;if(v)N=p-L,C=p+L,_=m-I,D=m+I;else{switch(u.value){case"left":N=p-A,C=p;break;case"center":N=p-L,C=p+L;break;case"right":N=p,C=p+A;break}switch(h.value){case"top":_=m-S,D=m;break;case"center":_=m-I,D=m+I;break;case"bottom":_=m,D=m+S;break}}var M=g-Math.max(b,E)-w-k,R=g+Math.max(b,E)+w+k,P=y-Math.max(b,E)-w-k,B=y+Math.max(b,E)+w+k;N+=M,C+=R,_+=P,D+=B;var F=n||"main",G=a.labelBounds,$=G[F]=G[F]||{};$.x1=N,$.y1=_,$.x2=C,$.y2=D,$.w=C-N,$.h=D-_,$.leftPad=M,$.rightPad=R,$.topPad=P,$.botPad=B;var V=v&&x.strValue==="autorotate",X=x.pfValue!=null&&x.pfValue!==0;if(V||X){var Q=V?_b(a.rstyle,"labelAngle",n):x.pfValue,H=Math.cos(Q),ie=Math.sin(Q),Y=(N+C)/2,le=(_+D)/2;if(!v){switch(u.value){case"left":Y=C;break;case"right":Y=N;break}switch(h.value){case"top":le=D;break;case"bottom":le=_;break}}var ee=o(function(ke,we){return ke=ke-Y,we=we-le,{x:ke*H-we*ie+Y,y:ke*ie+we*H+le}},"rotate"),J=ee(N,_),te=ee(N,D),Z=ee(C,_),xe=ee(C,D);N=Math.min(J.x,te.x,Z.x,xe.x),C=Math.max(J.x,te.x,Z.x,xe.x),_=Math.min(J.y,te.y,Z.y,xe.y),D=Math.max(J.y,te.y,Z.y,xe.y)}var de=F+"Rot",Se=G[de]=G[de]||{};Se.x1=N,Se.y1=_,Se.x2=C,Se.y2=D,Se.w=C-N,Se.h=D-_,xc(e,N,_,C,D),xc(a.labelBounds.all,N,_,C,D)}return e}},"updateBoundsFromLabel"),zpe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value,a=r.pstyle("outline-offset").value,s=i+a;kme(e,r,n,s,"outside",s/2)}},"updateBoundsFromOutline"),kme=o(function(e,r,n,i,a,s){if(!(n===0||i<=0||a==="inside")){var l=r.cy(),u=r.pstyle("shape").value,h=l.renderer().nodeShapes[u],f=r.position(),d=f.x,p=f.y,m=r.width(),g=r.height();if(h.hasMiterBounds){a==="center"&&(i/=2);var y=h.miterBounds(d,p,m,g,i);dd(e,y)}else s!=null&&s>0&&PS(e,[s,s,s,s])}},"updateBoundsFromMiter"),ZQe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("border-opacity").value,i=r.pstyle("border-width").pfValue,a=r.pstyle("border-position").value;kme(e,r,n,i,a)}},"updateBoundsFromMiterBorder"),JQe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=Ms(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(Me){return Me.pstyle("display").value!=="none"},"isDisplayed"),T=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(T){var E=0,w=0;i&&r.includeOverlays&&(E=e.pstyle("overlay-opacity").value,E!==0&&(w=e.pstyle("overlay-padding").value));var k=0,S=0;i&&r.includeUnderlays&&(k=e.pstyle("underlay-opacity").value,k!==0&&(S=e.pstyle("underlay-padding").value));var A=Math.max(w,S),L=0,I=0;if(i&&(L=e.pstyle("width").pfValue,I=L/2),u&&r.includeNodes){var N=e.position();g=N.x,y=N.y;var C=e.outerWidth(),_=C/2,D=e.outerHeight(),M=D/2;f=g-_,d=g+_,p=y-M,m=y+M,xc(s,f,p,d,m),i&&zpe(s,e),i&&r.includeOutlines&&!a&&zpe(s,e),i&&ZQe(s,e)}else if(h&&r.includeEdges)if(i&&!a){var R=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=I,d+=I,p-=I,m+=I,xc(s,f,p,d,m),R==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var B=f;f=d,d=B}if(p>m){var F=p;p=m,m=F}xc(s,f-I,p-I,d+I,m+I)}}else if(R==="bezier"||R==="unbundled-bezier"||pd(R,"segments")||pd(R,"taxi")){var G;switch(R){case"bezier":case"unbundled-bezier":G=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":G=v.linePts;break}if(G!=null)for(var $=0;$d){var Y=f;f=d,d=Y}if(p>m){var le=p;p=m,m=le}f-=I,d+=I,p-=I,m+=I,xc(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(AS(s,e,"mid-source"),AS(s,e,"mid-target"),AS(s,e,"source"),AS(s,e,"target")),i){var ee=e.pstyle("ghost").value==="yes";if(ee){var J=e.pstyle("ghost-offset-x").pfValue,te=e.pstyle("ghost-offset-y").pfValue;xc(s,s.x1+J,s.y1+te,s.x2+J,s.y2+te)}}var Z=l.bodyBounds=l.bodyBounds||{};Sde(Z,s),PS(Z,x),OS(Z,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,xc(s,f-A,p-A,d+A,m+A));var xe=l.overlayBounds=l.overlayBounds||{};Sde(xe,s),PS(xe,x),OS(xe,1);var de=l.labelBounds=l.labelBounds||{};de.all!=null?IXe(de.all):de.all=Ms(),i&&r.includeLabels&&(r.includeMainLabels&&kP(s,e,null),h&&(r.includeSourceLabels&&kP(s,e,"source"),r.includeTargetLabels&&kP(s,e,"target")))}return s.x1=Nl(s.x1),s.y1=Nl(s.y1),s.x2=Nl(s.x2),s.y2=Nl(s.y2),s.w=Nl(s.x2-s.x1),s.h=Nl(s.y2-s.y1),s.w>0&&s.h>0&&T&&(PS(s,x),OS(s,1)),s},"boundingBoxImpl"),Eme=o(function(e){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Ed.removeAllListeners=function(){return this.removeListener("*")};Ed.emit=Ed.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,$n(e)||(e=[e]),mZe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(){var f=n[u];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===dZe)&&a.eventMatches(a.context,f,s)){var d=[s];e!=null&&aXe(d,e),a.beforeEmit(a.context,f,s),f.conf&&f.conf.one&&(a.listeners=a.listeners.filter(function(g){return g!==f}));var p=a.callbackContext(a.context,f,s),m=f.callback.apply(p,d);a.afterEmit(a.context,f,s),m===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&or(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":aa(Symbol))!=e&&aa(Symbol.iterator)!=e;r&&(ZS[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return L0e({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){n._private.styleDirty&&(n._private.styleDirty=!1,i.style().apply(n));var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(sn(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(or(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});as.neighbourhood=as.neighborhood;as.closedNeighbourhood=as.closedNeighborhood;as.openNeighbourhood=as.openNeighborhood;pr(as,{source:Ml(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:Ml(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:Qpe({attr:"source"}),targets:Qpe({attr:"target"})});o(Qpe,"defineSourceFunction");pr(as,{edgesWith:Ml(Zpe(),"edgesWith"),edgesTo:Ml(Zpe({thisIsSrc:!0}),"edgesTo")});o(Zpe,"defineEdgesWithFunction");pr(as,{connectedEdges:Ml(function(t){for(var e=[],r=this,n=0;n0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});as.componentsOf=as.components;Va=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){ui("A collection must have a reference to the core");return}var a=new Oh,s=!1;if(!r)r=[];else if(r.length>0&&sn(r[0])&&!Qb(r[0])){s=!0;for(var l=[],u=new ry,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var F=l.length===r.length?r:new Va(n,l),G=0;G0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(D){for(var M=D._private.edges,R=0;R0&&(t?N.emitAndNotify("remove"):e&&N.emit("remove"));for(var C=0;Cf&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")})(),Wn=o(function(e,r,n,i){var a=SZe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),$S={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:Wn(.25,.1,.25,1),"ease-in":Wn(.42,0,1,1),"ease-out":Wn(0,0,.58,1),"ease-in-out":Wn(.42,0,.58,1),"ease-in-sine":Wn(.47,0,.745,.715),"ease-out-sine":Wn(.39,.575,.565,1),"ease-in-out-sine":Wn(.445,.05,.55,.95),"ease-in-quad":Wn(.55,.085,.68,.53),"ease-out-quad":Wn(.25,.46,.45,.94),"ease-in-out-quad":Wn(.455,.03,.515,.955),"ease-in-cubic":Wn(.55,.055,.675,.19),"ease-out-cubic":Wn(.215,.61,.355,1),"ease-in-out-cubic":Wn(.645,.045,.355,1),"ease-in-quart":Wn(.895,.03,.685,.22),"ease-out-quart":Wn(.165,.84,.44,1),"ease-in-out-quart":Wn(.77,0,.175,1),"ease-in-quint":Wn(.755,.05,.855,.06),"ease-out-quint":Wn(.23,1,.32,1),"ease-in-out-quint":Wn(.86,0,.07,1),"ease-in-expo":Wn(.95,.05,.795,.035),"ease-out-expo":Wn(.19,1,.22,1),"ease-in-out-expo":Wn(1,0,0,1),"ease-in-circ":Wn(.6,.04,.98,.335),"ease-out-circ":Wn(.075,.82,.165,1),"ease-in-out-circ":Wn(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return $S.linear;var i=CZe(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":Wn};o(e0e,"getEasedValue");o(t0e,"getValue");o(z1,"ease");o(AZe,"step$1");o(Rb,"valid");o(_Ze,"startAnimation");o(r0e,"stepAll");DZe={animate:kn.animate(),animation:kn.animation(),animated:kn.animated(),clearQueue:kn.clearQueue(),delay:kn.delay(),delayAnimation:kn.delayAnimation(),stop:kn.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&YS(o(function(a){r0e(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){r0e(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},RZe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&Qb(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},RS=o(function(e){return or(e)?new wd(e):e},"argSelector"),Ome={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new mC(RZe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,RS(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,RS(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,RS(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,RS(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};kn.eventAliasesOn(Ome);qP={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};qP.jpeg=qP.jpg;zS={layout:o(function(e){var r=this;if(e==null){ui("Layout options must be specified to make a layout");return}if(e.name==null){ui("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){ui("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;or(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(pr({},e,{cy:r,eles:a}));return s},"layout")};zS.createLayout=zS.makeLayout=zS.layout;LZe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};UP.invalidateDimensions=UP.resize;GS={collection:o(function(e,r){return or(e)?this.$(e):jo(e)?e.collection():$n(e)?(r||(r={}),new Va(this,e,r.unique,r.removed)):new Va(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};GS.elements=GS.filter=GS.$;Ea={},Bb="t",MZe="f";Ea.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(E=1),l.color){var k=n.valueMin[0],S=n.valueMax[0],A=n.valueMin[1],L=n.valueMax[1],I=n.valueMin[2],N=n.valueMax[2],C=n.valueMin[3]==null?1:n.valueMin[3],_=n.valueMax[3]==null?1:n.valueMax[3],D=[Math.round(k+(S-k)*E),Math.round(A+(L-A)*E),Math.round(I+(N-I)*E),Math.round(C+(_-C)*E)];a={bypass:n.bypass,name:n.name,value:D,strValue:"rgb("+D[0]+", "+D[1]+", "+D[2]+")"}}else if(l.number){var M=n.valueMin+(n.valueMax-n.valueMin)*E;a=this.parse(n.name,M,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var R=n.field.split("."),P=d.data,B=0;B0&&a>0){for(var l={},u=!1,h=0;h0?t.delayAnimation(s).play().promise().then(T):T()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};Ea.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);t.removed()||l!=null&&l(r,n,t)&&a(s)};Ea.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};Ea.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache()})};Ea.checkConnectedEdgesBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBoundsOfConnectedEdges},function(i){t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Ea.checkParallelEdgesBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBoundsOfParallelEdges},function(i){t.parallelEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Ea.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n),this.checkConnectedEdgesBoundsTrigger(t,e,r,n),this.checkParallelEdgesBoundsTrigger(t,e,r,n)};iT={};iT.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){En("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new wd(d);if(p.invalid){En("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){En("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],T=x[2],E=e.properties[b];if(!E){En("Skipping property: Invalid property name in: "+s),u();continue}var w=r.parse(b,T);if(!w){En("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:T}),u()}if(g){l();break}r.selector(d);for(var k=0;k=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return En("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var T;if(u?T=e.split(/\s+/):$n(e)?T=e:T=[e],h.evenMultiple&&T.length%2!==0)return null;for(var E=[],w=[],k=[],S="",A=!1,L=0;L0?" ":"")+I.strValue}return h.validate&&!h.validate(E,w)?null:h.singleEnum&&A?E.length===1&&or(E[0])?{name:t,value:E[0],strValue:E[0],bypass:r}:null:{name:t,value:E,pfValue:k,strValue:S,bypass:r,units:w}}var N=o(function(){for(var ee=0;eeh.max||h.strictMax&&e===h.max))return null;var R={name:t,value:e,strValue:""+e+(C||""),units:C,bypass:r};return h.unitless||C!=="px"&&C!=="em"?R.pfValue=e:R.pfValue=C==="px"||!C?e:this.getEmSizeInPixels()*e,(C==="ms"||C==="s")&&(R.pfValue=C==="ms"?e:1e3*e),(C==="deg"||C==="rad")&&(R.pfValue=C==="rad"?e:RXe(e)),C==="%"&&(R.pfValue=e/100),R}else if(h.propList){var P=[],B=""+e;if(B!=="none"){for(var F=B.split(/\s*,\s*|\s+/),G=0;G0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),Nt(e)?s=e:sn(e)&&(s=e.level,e.position!=null?a=lC(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;Nt(h.x)&&(r.pan.x=h.x,l=!1),Nt(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(or(e)){var n=e;e=this.mutableElements().filter(n)}else jo(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?(function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}})():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};q0.centre=q0.center;q0.autolockNodes=q0.autolock;q0.autoungrabifyNodes=q0.autoungrabify;Yb={data:kn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:kn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:kn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:kn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Yb.attr=Yb.data;Yb.removeAttr=Yb.removeData;jb=o(function(e){var r=this;e=pr({},e);var n=e.container;n&&!HS(n)&&HS(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=na!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=pr({name:s?"grid":"null"},l.layout),l.renderer=pr({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new Va(this),listeners:[],aniEles:new Va(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:Nt(l.zoom)?l.zoom:1,pan:{x:sn(l.pan)&&Nt(l.pan.x)?l.pan.x:0,y:sn(l.pan)&&Nt(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(Eje);if(v)return ny.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=pr({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(sn(g)||$n(g))&&r.add(g),r.one("layoutready",function(T){r.notifications(!0),r.emit(T),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=pr({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,Ei(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,l=!!t.boundingBox,u=Ms(l?t.boundingBox:structuredClone(e.extent())),h;if(jo(t.roots))h=t.roots;else if($n(t.roots)){for(var f=[],d=0;d0;){var D=_(),M=L(D,N);if(M)D.outgoers().filter(function(_e){return _e.isNode()&&r.has(_e)}).forEach(C);else if(M===null){En("Detected double maximal shift for node `"+D.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var R=0;if(t.avoidOverlap)for(var P=0;P0&&x[0].length<=3?Be/2:0),Ge=2*Math.PI/x[Ke].length*Te;return Ke===0&&x[0].length===1&&(Ue=1),{x:Z.x+Ue*Math.cos(Ge),y:Z.y+Ue*Math.sin(Ge)}}else{var Ne=x[Ke].length,We=Math.max(Ne===1?0:l?(u.w-t.padding*2-xe.w)/((t.grid?Se:Ne)-1):(u.w-t.padding*2-xe.w)/((t.grid?Se:Ne)+1),R),j={x:Z.x+(Te+1-(Ne+1)/2)*We,y:Z.y+(Ke+1-(H+1)/2)*de};return j}},"getPositionTopBottom"),ke={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(ke).indexOf(t.direction)===-1&&ui("Invalid direction '".concat(t.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(ke).join(", ")));var we=o(function($e){return Jje(Me($e),u,ke[t.direction])},"getPosition");return r.nodes().layoutPositions(this,t,we),this};FZe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Bme,"CircleLayout");Bme.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=Ms(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),T=Math.sqrt(d*d/(x*x+b*b));f=Math.max(T,f)}var E=o(function(k,S){var A=e.startAngle+S*h*(i?1:-1),L=f*Math.cos(A),I=f*Math.sin(A),N={x:l.x+L,y:l.y+I};return N},"getPos");return n.nodes().layoutPositions(this,e,E),this};$Ze={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Fme,"ConcentricLayout");Fme.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=Ms(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var w=Math.abs(b[0].value-E.value);w>=v&&(b=[],x.push(b))}b.push(E)}var k=h+e.minNodeSpacing;if(!e.avoidOverlap){var S=x.length>0&&x[0].length>1,A=Math.min(s.w,s.h)/2-k,L=A/(x.length+S?1:0);k=Math.min(k,L)}for(var I=0,N=0;N1&&e.avoidOverlap){var M=Math.cos(D)-Math.cos(0),R=Math.sin(D)-Math.sin(0),P=Math.sqrt(k*k/(M*M+R*R));I=Math.max(P,I)}C.r=I,I+=k}if(e.equidistant){for(var B=0,F=0,G=0;G=t.numIter||(HZe(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature=t.animationThreshold&&a(),YS(f)}},"frame");f()}else{for(;h;)h=s(u),u++;a0e(n,t),l()}return this};bC.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};bC.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};GZe=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=Ms(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(A);for(var f=0;fi.count?0:i.graph},"findLCA"),$me=o(function(e,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=eC(e,l,u),v=eC(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,T=x*x+b*b,p=Math.sqrt(T),d=(e.nodeRepulsion+r.nodeRepulsion)/T,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),XZe=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),eC=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),KZe=o(function(e,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),ZZe=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),Gme=o(function(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),tJe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Vme,"GridLayout");Vme.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=Ms(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(X){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(Q){if(Q==null)return Math.min(u,h);var H=Math.min(u,h);H==u?u=Q:h=Q},"small"),d=o(function(Q){if(Q==null)return Math.max(u,h);var H=Math.max(u,h);H==u?u=Q:h=Q},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,T=a.h/u;if(e.condense&&(b=0,T=0),e.avoidOverlap)for(var E=0;E=h&&(M=0,D++)},"moveToNextCell"),P={},B=0;B(M=UXe(t,e,R[P],R[P+1],R[P+2],R[P+3])))return v(S,M),!0}else if(L.edgeType==="bezier"||L.edgeType==="multibezier"||L.edgeType==="self"||L.edgeType==="compound"){for(var R=L.allpts,P=0;P+5(M=qXe(t,e,R[P],R[P+1],R[P+2],R[P+3],R[P+4],R[P+5])))return v(S,M),!0}for(var B=B||A.source,F=F||A.target,G=i.getArrowWidth(I,N),$=[{name:"source",x:L.arrowStartX,y:L.arrowStartY,angle:L.srcArrowAngle},{name:"target",x:L.arrowEndX,y:L.arrowEndY,angle:L.tgtArrowAngle},{name:"mid-source",x:L.midX,y:L.midY,angle:L.midsrcArrowAngle},{name:"mid-target",x:L.midX,y:L.midY,angle:L.midtgtArrowAngle}],P=0;P<$.length;P++){var V=$[P],X=a.arrowShapes[S.pstyle(V.name+"-arrow-shape").value],Q=S.pstyle("width").pfValue;if(X.roughCollide(t,e,G,V.angle,{x:V.x,y:V.y},Q,f)&&X.collide(t,e,G,V.angle,{x:V.x,y:V.y},Q,f))return v(S),!0}h&&l.length>0&&(x(B),x(F))}o(b,"checkEdge");function T(S,A,L){return yo(S,A,L)}o(T,"preprop");function E(S,A){var L=S._private,I=p,N;A?N=A+"-":N="",S.boundingBox();var C=L.labelBounds[A||"main"],_=S.pstyle(N+"label").value,D=S.pstyle("text-events").strValue==="yes";if(!(!D||!_)){var M=T(L.rscratch,"labelX",A),R=T(L.rscratch,"labelY",A),P=T(L.rscratch,"labelAngle",A),B=S.pstyle(N+"text-margin-x").pfValue,F=S.pstyle(N+"text-margin-y").pfValue,G=C.x1-I-B,$=C.x2+I-B,V=C.y1-I-F,X=C.y2+I-F;if(P){var Q=Math.cos(P),H=Math.sin(P),ie=o(function(xe,de){return xe=xe-M,de=de-R,{x:xe*Q-de*H+M,y:xe*H+de*Q+R}},"rotate"),Y=ie(G,V),le=ie(G,X),ee=ie($,V),J=ie($,X),te=[Y.x+B,Y.y+F,ee.x+B,ee.y+F,J.x+B,J.y+F,le.x+B,le.y+F];if(vo(t,e,te))return v(S),!0}else if(md(C,t,e))return v(S),!0}}o(E,"checkLabel");for(var w=s.length-1;w>=0;w--){var k=s[w];k.isNode()?x(k)||E(k):b(k)||E(k)||E(k,"source")||E(k,"target")}return l};W0.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=this.cy.zoom(),s=2/a,l=[],u=Math.min(t,r),h=Math.max(t,r),f=Math.min(e,n),d=Math.max(e,n);t=u,r=h,e=f,n=d;var p=Ms({x1:t,y1:e,x2:r,y2:n}),m=[{x:p.x1,y:p.y1},{x:p.x2,y:p.y1},{x:p.x2,y:p.y2},{x:p.x1,y:p.y2}],g=[[m[0],m[1]],[m[1],m[2]],[m[2],m[3]],[m[3],m[0]]];function y(xe,de,Se){return yo(xe,de,Se)}o(y,"preprop");function v(xe,de){var Se=xe._private,Me=s,ke="";xe.boundingBox();var we=Se.labelBounds.main;if(!we)return null;var _e=y(Se.rscratch,"labelX",de),$e=y(Se.rscratch,"labelY",de),fe=y(Se.rscratch,"labelAngle",de),Ke=xe.pstyle(ke+"text-margin-x").pfValue,Te=xe.pstyle(ke+"text-margin-y").pfValue,Be=we.x1-Me-Ke,Ue=we.x2+Me-Ke,Ge=we.y1-Me-Te,Ne=we.y2+Me-Te;if(fe){var We=Math.cos(fe),j=Math.sin(fe),ae=o(function(ce,z){return ce=ce-_e,z=z-$e,{x:ce*We-z*j+_e,y:ce*j+z*We+$e}},"rotate");return[ae(Be,Ge),ae(Ue,Ge),ae(Ue,Ne),ae(Be,Ne)]}else return[{x:Be,y:Ge},{x:Ue,y:Ge},{x:Ue,y:Ne},{x:Be,y:Ne}]}o(v,"getRotatedLabelBox");function x(xe,de,Se,Me){function ke(we,_e,$e){return($e.y-we.y)*(_e.x-we.x)>(_e.y-we.y)*($e.x-we.x)}return o(ke,"ccw"),ke(xe,Se,Me)!==ke(de,Se,Me)&&ke(xe,de,Se)!==ke(xe,de,Me)}o(x,"doLinesIntersect");for(var b=0;b0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),oJe=o(function(e,r,n,i,a){if(e!==u0e?h0e(r,e,Su):sJe(Ll,Su),h0e(r,n,Ll),l0e=Su.nx*Ll.ny-Su.ny*Ll.nx,c0e=Su.nx*Ll.nx-Su.ny*-Ll.ny,Mh=Math.asin(Math.max(-1,Math.min(1,l0e))),Math.abs(Mh)<1e-6){WP=r.x,HP=r.y,P0=V1=0;return}F0=1,VS=!1,c0e<0?Mh<0?Mh=Math.PI+Mh:(Mh=Math.PI-Mh,F0=-1,VS=!0):Mh>0&&(F0=-1,VS=!0),r.radius!==void 0?V1=r.radius:V1=i,N0=Mh/2,LS=Math.min(Su.len/2,Ll.len/2),a?(ku=Math.abs(Math.cos(N0)*V1/Math.sin(N0)),ku>LS?(ku=LS,P0=Math.abs(ku*Math.sin(N0)/Math.cos(N0))):P0=V1):(ku=Math.min(LS,V1),P0=Math.abs(ku*Math.sin(N0)/Math.cos(N0))),YP=r.x+Ll.nx*ku,jP=r.y+Ll.ny*ku,WP=YP-Ll.ny*P0*F0,HP=jP+Ll.nx*P0*F0,Hme=r.x+Su.nx*ku,Yme=r.y+Su.ny*ku,u0e=r},"calcCornerArc");o(jme,"drawPreparedRoundCorner");o(TB,"getRoundCorner");Xb=.01,lJe=Math.sqrt(2*Xb),os={};os.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(w,k,S,A){var L=A-k,I=S-w,N=Math.sqrt(I*I+L*L);return{x:-L/N,y:I/N}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=Wi(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=Wi(y,2),x=v[0],b=v[1],T={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=T}else En("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};os.findHaystackPoints=function(t){for(var e=0;e0?Math.max(z-ne,0):Math.min(z+ne,0)},"subDWH"),_=C(I,A),D=C(N,L),M=!1;b===h?x=Math.abs(_)>Math.abs(D)?i:n:b===u||b===l?(x=n,M=!0):(b===a||b===s)&&(x=i,M=!0);var R=x===n,P=R?D:_,B=R?N:I,F=lB(B),G=!1;!(M&&(E||k))&&(b===l&&B<0||b===u&&B>0||b===a&&B>0||b===s&&B<0)&&(F*=-1,P=F*Math.abs(P),G=!0);var $;if(E){var V=w<0?1+w:w;$=V*P}else{var X=w<0?P:0;$=X+w*F}var Q=o(function(z){return Math.abs(z)=Math.abs(P)},"getIsTooClose"),H=Q($),ie=Q(Math.abs(P)-Math.abs($)),Y=H||ie;if(Y&&!G)if(R){var le=Math.abs(B)<=p/2,ee=Math.abs(I)<=m/2;if(le){var J=(f.x1+f.x2)/2,te=f.y1,Z=f.y2;r.segpts=[J,te,J,Z]}else if(ee){var xe=(f.y1+f.y2)/2,de=f.x1,Se=f.x2;r.segpts=[de,xe,Se,xe]}else r.segpts=[f.x1,f.y2]}else{var Me=Math.abs(B)<=d/2,ke=Math.abs(N)<=g/2;if(Me){var we=(f.y1+f.y2)/2,_e=f.x1,$e=f.x2;r.segpts=[_e,we,$e,we]}else if(ke){var fe=(f.x1+f.x2)/2,Ke=f.y1,Te=f.y2;r.segpts=[fe,Ke,fe,Te]}else r.segpts=[f.x2,f.y1]}else if(R){var Be=f.y1+$+(v?p/2*F:0),Ue=f.x1,Ge=f.x2;r.segpts=[Ue,Be,Ge,Be]}else{var Ne=f.x1+$+(v?d/2*F:0),We=f.y1,j=f.y2;r.segpts=[Ne,We,Ne,j]}if(r.isRound){var ae=t.pstyle("taxi-radius").value,U=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ae),r.isArcRadius=new Array(r.segpts.length/2).fill(U)}};os.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!Nt(r.startX)||!Nt(r.startY),v=!Nt(r.arrowStartX)||!Nt(r.arrowStartY),x=!Nt(r.endX)||!Nt(r.endY),b=!Nt(r.arrowEndX)||!Nt(r.arrowEndY),T=3,E=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,w=T*E,k=G0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),S=kB.poolIndex()){var F=P;P=B,B=F}var G=_.srcPos=P.position(),$=_.tgtPos=B.position(),V=_.srcW=P.outerWidth(),X=_.srcH=P.outerHeight(),Q=_.tgtW=B.outerWidth(),H=_.tgtH=B.outerHeight(),ie=_.srcShape=r.nodeShapes[e.getNodeShape(P)],Y=_.tgtShape=r.nodeShapes[e.getNodeShape(B)],le=_.srcCornerRadius=P.pstyle("corner-radius").value==="auto"?"auto":P.pstyle("corner-radius").pfValue,ee=_.tgtCornerRadius=B.pstyle("corner-radius").value==="auto"?"auto":B.pstyle("corner-radius").pfValue,J=_.tgtRs=B._private.rscratch,te=_.srcRs=P._private.rscratch;_.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Z=0;Z<_.eles.length;Z++){var xe=_.eles[Z],de=xe[0]._private.rscratch,Se=xe.pstyle("curve-style").value,Me=Se==="unbundled-bezier"||pd(Se,"segments")||pd(Se,"taxi"),ke=!P.same(xe.source());if(!_.calculatedIntersection&&P!==B&&(_.hasBezier||_.hasUnbundled)){_.calculatedIntersection=!0;var we=ie.intersectLine(G.x,G.y,V,X,$.x,$.y,0,le,te),_e=_.srcIntn=we,$e=Y.intersectLine($.x,$.y,Q,H,G.x,G.y,0,ee,J),fe=_.tgtIntn=$e,Ke=_.intersectionPts={x1:we[0],x2:$e[0],y1:we[1],y2:$e[1]},Te=_.posPts={x1:G.x,x2:$.x,y1:G.y,y2:$.y},Be=$e[1]-we[1],Ue=$e[0]-we[0],Ge=Math.sqrt(Ue*Ue+Be*Be);Nt(Ge)&&Ge>=lJe||(Ge=Math.sqrt(Math.max(Ue*Ue,Xb)+Math.max(Be*Be,Xb)));var Ne=_.vector={x:Ue,y:Be},We=_.vectorNorm={x:Ne.x/Ge,y:Ne.y/Ge},j={x:-We.y,y:We.x};_.nodesOverlap=!Nt(Ge)||Y.checkPoint(we[0],we[1],0,Q,H,$.x,$.y,ee,J)||ie.checkPoint($e[0],$e[1],0,V,X,G.x,G.y,le,te),_.vectorNormInverse=j,D={nodesOverlap:_.nodesOverlap,dirCounts:_.dirCounts,calculatedIntersection:!0,hasBezier:_.hasBezier,hasUnbundled:_.hasUnbundled,eles:_.eles,srcPos:$,srcRs:J,tgtPos:G,tgtRs:te,srcW:Q,srcH:H,tgtW:V,tgtH:X,srcIntn:fe,tgtIntn:_e,srcShape:Y,tgtShape:ie,posPts:{x1:Te.x2,y1:Te.y2,x2:Te.x1,y2:Te.y1},intersectionPts:{x1:Ke.x2,y1:Ke.y2,x2:Ke.x1,y2:Ke.y1},vector:{x:-Ne.x,y:-Ne.y},vectorNorm:{x:-We.x,y:-We.y},vectorNormInverse:{x:-j.x,y:-j.y}}}var ae=ke?D:_;de.nodesOverlap=ae.nodesOverlap,de.srcIntn=ae.srcIntn,de.tgtIntn=ae.tgtIntn,de.isRound=Se.startsWith("round"),i&&(P.isParent()||P.isChild()||B.isParent()||B.isChild())&&(P.parents().anySame(B)||B.parents().anySame(P)||P.same(B)&&P.isParent())?e.findCompoundLoopPoints(xe,ae,Z,Me):P===B?e.findLoopPoints(xe,ae,Z,Me):Se.endsWith("segments")?e.findSegmentsPoints(xe,ae):Se.endsWith("taxi")?e.findTaxiPoints(xe,ae):Se==="straight"||!Me&&_.eles.length%2===1&&Z===Math.floor(_.eles.length/2)?e.findStraightEdgePoints(xe):e.findBezierPoints(xe,ae,Z,Me,ke),e.findEndpoints(xe),e.tryToCorrectInvalidPoints(xe,ae),e.checkForInvalidEdgeWarning(xe),e.storeAllpts(xe),e.storeEdgeProjections(xe),e.calculateArrowAngles(xe),e.recalculateEdgeLabelProjections(xe),e.calculateLabelAngles(xe)}},"_loop"),S=0;S0){var we=h,_e=O0(we,H1(s)),$e=O0(we,H1(ke)),fe=_e;if($e<_e&&(s=ke,fe=$e),ke.length>2){var Ke=O0(we,{x:ke[2],y:ke[3]});Ke0){var se=f,be=O0(se,H1(s)),pe=O0(se,H1(ne)),me=be;if(pe2){var Re=O0(se,{x:ne[2],y:ne[3]});Re=g||S){v={cp:E,segment:k};break}}if(v)break}var A=v.cp,L=v.segment,I=(g-x)/L.length,N=L.t1-L.t0,C=m?L.t0+N*I:L.t1-N*I;C=qb(0,C,1),e=X1(A.p0,A.p1,A.p2,C),p=uJe(A.p0,A.p1,A.p2,C);break}case"straight":case"segments":case"haystack":{for(var _=0,D,M,R,P,B=n.allpts.length,F=0;F+3=g));F+=2);var G=g-M,$=G/D;$=qb(0,$,1),e=NXe(R,P,$),p=Qme(R,P);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};_u.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};_u.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=z0(n,t._private.labelDimsKey);if(yo(r.rscratch,"prefixedLabelDimsKey",e)!==i){Ih(r.rscratch,"prefixedLabelDimsKey",e,i);var a=this.calculateLabelDimensions(t,n),s=t.pstyle("line-height").pfValue,l=t.pstyle("text-wrap").strValue,u=yo(r.rscratch,"labelWrapCachedLines",e)||[],h=l!=="wrap"?1:Math.max(u.length,1),f=a.height/h,d=f*s,p=a.width,m=a.height+(h-1)*(s-1)*f;Ih(r.rstyle,"labelWidth",e,p),Ih(r.rscratch,"labelWidth",e,p),Ih(r.rstyle,"labelHeight",e,m),Ih(r.rscratch,"labelHeight",e,m),Ih(r.rscratch,"labelLineHeight",e,d)}};_u.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(X,Q){return Q?(Ih(r.rscratch,X,e,Q),Q):yo(r.rscratch,X,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var w=x.matchAll(y),k="",S=0,A=xo(w),L;try{for(A.s();!(L=A.n()).done;){var I=L.value,N=I[0],C=x.substring(S,I.index);S=I.index+N.length;var _=k.length===0?C:k+C+N,D=this.calculateLabelDimensions(t,_),M=D.width;M<=d?k+=C+N:(k&&g.push(k),k=C+N)}}catch(V){A.e(V)}finally{A.f()}k.match(/^[\s\u200b]+$/)||g.push(k)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var R=t.pstyle("text-max-width").pfValue,P="",B="\u2026",F=!1;if(this.calculateLabelDimensions(t,i).widthR)break;P+=i[G],G===i.length-1&&(F=!0)}return F||(P+=B),P}return i};_u.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};_u.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=0,s=t.pstyle("font-style").strValue,l=t.pstyle("font-size").pfValue,u=t.pstyle("font-family").strValue,h=t.pstyle("font-weight").strValue,f=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!f){f=this.labelCalcCanvas=i.createElement("canvas"),d=this.labelCalcCanvasContext=f.getContext("2d");var p=f.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}d.font="".concat(s," ").concat(h," ").concat(l,"px ").concat(u);for(var m=0,g=0,y=e.split(` +`),v=0;v1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u=t.desktopTapThreshold2}var at=a(z);ot&&(t.hoverData.tapholdCancelled=!0);var Ct=o(function(){var mt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];mt.length===0?(mt.push(et[0]),mt.push(et[1])):(mt[0]+=et[0],mt[1]+=et[1])},"updateDragDelta");se=!0,i(Pe,["mousemove","vmousemove","tapdrag"],z,{x:Re[0],y:Re[1]});var yt=o(function(mt){return{originalEvent:z,type:mt,position:{x:Re[0],y:Re[1]}}},"makeEvent"),dt=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||be.emit(yt("boxstart")),qe[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(ot){var Ht=yt("cxtdrag");oe?oe.emit(Ht):be.emit(Ht),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||Pe!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit(yt("cxtdragout")),t.hoverData.cxtOver=Pe,Pe&&Pe.emit(yt("cxtdragover")))}}else if(t.hoverData.dragging){if(se=!0,be.panningEnabled()&&be.userPanningEnabled()){var cr;if(t.hoverData.justStartedPan){var Kt=t.hoverData.mdownPos;cr={x:(Re[0]-Kt[0])*pe,y:(Re[1]-Kt[1])*pe},t.hoverData.justStartedPan=!1}else cr={x:et[0]*pe,y:et[1]*pe};be.panBy(cr),be.emit(yt("dragpan")),t.hoverData.dragged=!0}Re=t.projectIntoViewport(z.clientX,z.clientY)}else if(qe[4]==1&&(oe==null||oe.pannable())){if(ot){if(!t.hoverData.dragging&&be.boxSelectionEnabled()&&(at||!be.panningEnabled()||!be.userPanningEnabled()))dt();else if(!t.hoverData.selecting&&be.panningEnabled()&&be.userPanningEnabled()){var kr=s(oe,t.hoverData.downs);kr&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,qe[4]=0,t.data.bgActivePosistion=H1(ge),t.redrawHint("select",!0),t.redraw())}oe&&oe.pannable()&&oe.active()&&oe.unactivate()}}else{if(oe&&oe.pannable()&&oe.active()&&oe.unactivate(),(!oe||!oe.grabbed())&&Pe!=Xe&&(Xe&&i(Xe,["mouseout","tapdragout"],z,{x:Re[0],y:Re[1]}),Pe&&i(Pe,["mouseover","tapdragover"],z,{x:Re[0],y:Re[1]}),t.hoverData.last=Pe),oe)if(ot){if(be.boxSelectionEnabled()&&at)oe&&oe.grabbed()&&(x(he),oe.emit(yt("freeon")),he.emit(yt("free")),t.dragData.didDrag&&(oe.emit(yt("dragfreeon")),he.emit(yt("dragfree")))),dt();else if(oe&&oe.grabbed()&&t.nodeIsDraggable(oe)){var ur=!t.dragData.didDrag;ur&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||y(he,{inDragLayer:!0});var tr={x:0,y:0};if(Nt(et[0])&&Nt(et[1])&&(tr.x+=et[0],tr.y+=et[1],ur)){var hr=t.hoverData.dragDelta;hr&&Nt(hr[0])&&Nt(hr[1])&&(tr.x+=hr[0],tr.y+=hr[1])}t.hoverData.draggingEles=!0,he.silentShift(tr).emit(yt("position")).emit(yt("drag")),t.redrawHint("drag",!0),t.redraw()}}else Ct();se=!0}if(qe[2]=Re[0],qe[3]=Re[1],se)return z.stopPropagation&&z.stopPropagation(),z.preventDefault&&z.preventDefault(),!1}},"mousemoveHandler"),!1);var C,_,D;t.registerBinding(e,"mouseup",o(function(z){if(!(t.hoverData.which===1&&z.which!==1&&t.hoverData.capture)){var ne=t.hoverData.capture;if(ne){t.hoverData.capture=!1;var se=t.cy,be=t.projectIntoViewport(z.clientX,z.clientY),pe=t.selection,me=t.findNearestElement(be[0],be[1],!0,!1),Re=t.dragData.possibleDragElements,ge=t.hoverData.down,Ie=a(z);t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,ge&&ge.unactivate();var qe=o(function(Dt){return{originalEvent:z,type:Dt,position:{x:be[0],y:be[1]}}},"makeEvent");if(t.hoverData.which===3){var Pe=qe("cxttapend");if(ge?ge.emit(Pe):se.emit(Pe),!t.hoverData.cxtDragged){var Xe=qe("cxttap");ge?ge.emit(Xe):se.emit(Xe)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(i(me,["mouseup","tapend","vmouseup"],z,{x:be[0],y:be[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(i(ge,["click","tap","vclick"],z,{x:be[0],y:be[1]}),_=!1,z.timeStamp-D<=se.multiClickDebounceTime()?(C&&clearTimeout(C),_=!0,D=null,i(ge,["dblclick","dbltap","vdblclick"],z,{x:be[0],y:be[1]})):(C=setTimeout(function(){_||i(ge,["oneclick","onetap","voneclick"],z,{x:be[0],y:be[1]})},se.multiClickDebounceTime()),D=z.timeStamp)),ge==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!a(z)&&(se.$(r).unselect(["tapunselect"]),Re.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Re=se.collection()),me==ge&&!t.dragData.didDrag&&!t.hoverData.selecting&&me!=null&&me._private.selectable&&(t.hoverData.dragging||(se.selectionType()==="additive"||Ie?me.selected()?me.unselect(["tapunselect"]):me.select(["tapselect"]):Ie||(se.$(r).unmerge(me).unselect(["tapunselect"]),me.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var oe=se.collection(t.getAllInBox(pe[0],pe[1],pe[2],pe[3]));t.redrawHint("select",!0),oe.length>0&&t.redrawHint("eles",!0),se.emit(qe("boxend"));var et=o(function(Dt){return Dt.selectable()&&!Dt.selected()},"eleWouldBeSelected");se.selectionType()==="additive"||Ie||se.$(r).unmerge(oe).unselect(),oe.emit(qe("box")).stdFilter(et).select().emit(qe("boxselect")),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!pe[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var he=ge&&ge.grabbed();x(Re),he&&(ge.emit(qe("freeon")),Re.emit(qe("free")),t.dragData.didDrag&&(ge.emit(qe("dragfreeon")),Re.emit(qe("dragfree"))))}}pe[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},"mouseupHandler"),!1);var M=[],R=4,P,B=1e5,F=o(function(z,ne){for(var se=0;se=R){var be=M;if(P=F(be,5),!P){var pe=Math.abs(be[0]);P=G(be)&&pe>5}if(P)for(var me=0;me5&&(se=lB(se)*5),Xe=se/-250,P&&(Xe/=B,Xe*=3),Xe=Xe*t.wheelSensitivity;var oe=z.deltaMode===1;oe&&(Xe*=33);var et=Re.zoom()*Math.pow(10,Xe);z.type==="gesturechange"&&(et=t.gestureStartZoom*z.scale),Re.zoom({level:et,renderedPosition:{x:Pe[0],y:Pe[1]}}),Re.emit({type:z.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:z,position:{x:qe[0],y:qe[1]}})}}}},"wheelHandler");t.registerBinding(t.container,"wheel",$,!0),t.registerBinding(e,"scroll",o(function(z){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(z){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||z.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(ce){t.hasTouchStarted||$(ce)},!0),t.registerBinding(t.container,"mouseout",o(function(z){var ne=t.projectIntoViewport(z.clientX,z.clientY);t.cy.emit({originalEvent:z,type:"mouseout",position:{x:ne[0],y:ne[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(z){var ne=t.projectIntoViewport(z.clientX,z.clientY);t.cy.emit({originalEvent:z,type:"mouseover",position:{x:ne[0],y:ne[1]}})},"mouseOverHandler"),!1);var V,X,Q,H,ie,Y,le,ee,J,te,Z,xe,de,Se=o(function(z,ne,se,be){return Math.sqrt((se-z)*(se-z)+(be-ne)*(be-ne))},"distance"),Me=o(function(z,ne,se,be){return(se-z)*(se-z)+(be-ne)*(be-ne)},"distanceSq"),ke;t.registerBinding(t.container,"touchstart",ke=o(function(z){if(t.hasTouchStarted=!0,!!I(z)){T(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var ne=t.cy,se=t.touchData.now,be=t.touchData.earlier;if(z.touches[0]){var pe=t.projectIntoViewport(z.touches[0].clientX,z.touches[0].clientY);se[0]=pe[0],se[1]=pe[1]}if(z.touches[1]){var pe=t.projectIntoViewport(z.touches[1].clientX,z.touches[1].clientY);se[2]=pe[0],se[3]=pe[1]}if(z.touches[2]){var pe=t.projectIntoViewport(z.touches[2].clientX,z.touches[2].clientY);se[4]=pe[0],se[5]=pe[1]}var me=o(function(at){return{originalEvent:z,type:at,position:{x:se[0],y:se[1]}}},"makeEvent");if(z.touches[1]){t.touchData.singleTouchMoved=!0,x(t.dragData.touchDragEles);var Re=t.findContainerClientCoords();J=Re[0],te=Re[1],Z=Re[2],xe=Re[3],V=z.touches[0].clientX-J,X=z.touches[0].clientY-te,Q=z.touches[1].clientX-J,H=z.touches[1].clientY-te,de=0<=V&&V<=Z&&0<=Q&&Q<=Z&&0<=X&&X<=xe&&0<=H&&H<=xe;var ge=ne.pan(),Ie=ne.zoom();ie=Se(V,X,Q,H),Y=Me(V,X,Q,H),le=[(V+Q)/2,(X+H)/2],ee=[(le[0]-ge.x)/Ie,(le[1]-ge.y)/Ie];var qe=200,Pe=qe*qe;if(Y=1){for(var It=t.touchData.startPosition=[null,null,null,null,null,null],wt=0;wt=t.touchTapThreshold2}if(ne&&t.touchData.cxt){z.preventDefault();var wt=z.touches[0].clientX-J,Rt=z.touches[0].clientY-te,it=z.touches[1].clientX-J,at=z.touches[1].clientY-te,Ct=Me(wt,Rt,it,at),yt=Ct/Y,dt=150,Ht=dt*dt,cr=1.5,Kt=cr*cr;if(yt>=Kt||Ct>=Ht){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var kr=Ie("cxttapend");t.touchData.start?(t.touchData.start.unactivate().emit(kr),t.touchData.start=null):be.emit(kr)}}if(ne&&t.touchData.cxt){var kr=Ie("cxtdrag");t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(kr):be.emit(kr),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var ur=t.findNearestElement(pe[0],pe[1],!0,!0);(!t.touchData.cxtOver||ur!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit(Ie("cxtdragout")),t.touchData.cxtOver=ur,ur&&ur.emit(Ie("cxtdragover")))}else if(ne&&z.touches[2]&&be.boxSelectionEnabled())z.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||be.emit(Ie("boxstart")),t.touchData.selecting=!0,t.touchData.didSelect=!0,se[4]=1,!se||se.length===0||se[0]===void 0?(se[0]=(pe[0]+pe[2]+pe[4])/3,se[1]=(pe[1]+pe[3]+pe[5])/3,se[2]=(pe[0]+pe[2]+pe[4])/3+1,se[3]=(pe[1]+pe[3]+pe[5])/3+1):(se[2]=(pe[0]+pe[2]+pe[4])/3,se[3]=(pe[1]+pe[3]+pe[5])/3),t.redrawHint("select",!0),t.redraw();else if(ne&&z.touches[1]&&!t.touchData.didSelect&&be.zoomingEnabled()&&be.panningEnabled()&&be.userZoomingEnabled()&&be.userPanningEnabled()){z.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var tr=t.dragData.touchDragEles;if(tr){t.redrawHint("drag",!0);for(var hr=0;hr0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var _e;t.registerBinding(e,"touchcancel",_e=o(function(z){var ne=t.touchData.start;t.touchData.capture=!1,ne&&ne.unactivate()},"touchcancelHandler"));var $e,fe,Ke,Te;if(t.registerBinding(e,"touchend",$e=o(function(z){var ne=t.touchData.start,se=t.touchData.capture;if(se)z.touches.length===0&&(t.touchData.capture=!1),z.preventDefault();else return;var be=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var pe=t.cy,me=pe.zoom(),Re=t.touchData.now,ge=t.touchData.earlier;if(z.touches[0]){var Ie=t.projectIntoViewport(z.touches[0].clientX,z.touches[0].clientY);Re[0]=Ie[0],Re[1]=Ie[1]}if(z.touches[1]){var Ie=t.projectIntoViewport(z.touches[1].clientX,z.touches[1].clientY);Re[2]=Ie[0],Re[3]=Ie[1]}if(z.touches[2]){var Ie=t.projectIntoViewport(z.touches[2].clientX,z.touches[2].clientY);Re[4]=Ie[0],Re[5]=Ie[1]}var qe=o(function(Ht){return{originalEvent:z,type:Ht,position:{x:Re[0],y:Re[1]}}},"makeEvent");ne&&ne.unactivate();var Pe;if(t.touchData.cxt){if(Pe=qe("cxttapend"),ne?ne.emit(Pe):pe.emit(Pe),!t.touchData.cxtDragged){var Xe=qe("cxttap");ne?ne.emit(Xe):pe.emit(Xe)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!z.touches[2]&&pe.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var oe=pe.collection(t.getAllInBox(be[0],be[1],be[2],be[3]));be[0]=void 0,be[1]=void 0,be[2]=void 0,be[3]=void 0,be[4]=0,t.redrawHint("select",!0),pe.emit(qe("boxend"));var et=o(function(Ht){return Ht.selectable()&&!Ht.selected()},"eleWouldBeSelected");oe.emit(qe("box")).stdFilter(et).select().emit(qe("boxselect")),oe.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(ne?.unactivate(),z.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!z.touches[1]){if(!z.touches[0]){if(!z.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var he=t.dragData.touchDragEles;if(ne!=null){var ot=ne._private.grabbed;x(he),t.redrawHint("drag",!0),t.redrawHint("eles",!0),ot&&(ne.emit(qe("freeon")),he.emit(qe("free")),t.dragData.didDrag&&(ne.emit(qe("dragfreeon")),he.emit(qe("dragfree")))),i(ne,["touchend","tapend","vmouseup","tapdragout"],z,{x:Re[0],y:Re[1]}),ne.unactivate(),t.touchData.start=null}else{var Dt=t.findNearestElement(Re[0],Re[1],!0,!0);i(Dt,["touchend","tapend","vmouseup","tapdragout"],z,{x:Re[0],y:Re[1]})}var It=t.touchData.startPosition[0]-Re[0],wt=It*It,Rt=t.touchData.startPosition[1]-Re[1],it=Rt*Rt,at=wt+it,Ct=at*me*me;t.touchData.singleTouchMoved||(ne||pe.$(":selected").unselect(["tapunselect"]),i(ne,["tap","vclick"],z,{x:Re[0],y:Re[1]}),fe=!1,z.timeStamp-Te<=pe.multiClickDebounceTime()?(Ke&&clearTimeout(Ke),fe=!0,Te=null,i(ne,["dbltap","vdblclick"],z,{x:Re[0],y:Re[1]})):(Ke=setTimeout(function(){fe||i(ne,["onetap","voneclick"],z,{x:Re[0],y:Re[1]})},pe.multiClickDebounceTime()),Te=z.timeStamp)),ne!=null&&!t.dragData.didDrag&&ne._private.selectable&&Ct"u"){var Be=[],Ue=o(function(z){return{clientX:z.clientX,clientY:z.clientY,force:1,identifier:z.pointerId,pageX:z.pageX,pageY:z.pageY,radiusX:z.width/2,radiusY:z.height/2,screenX:z.screenX,screenY:z.screenY,target:z.target}},"makeTouch"),Ge=o(function(z){return{event:z,touch:Ue(z)}},"makePointer"),Ne=o(function(z){Be.push(Ge(z))},"addPointer"),We=o(function(z){for(var ne=0;ne0)return V[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:J0e(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?Td(i,a):u;var h=2*u;if(Bh(e,r,this.points,s,l,i,a-h,[0,-1],n)||Bh(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(vo(e,r,p)||$0(e,r,h,h,s+i/2-u,l+a/2-u,n)||$0(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};Fh.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",Ns(3,0)),this.generateRoundPolygon("round-triangle",Ns(3,0)),this.generatePolygon("rectangle",Ns(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",Ns(5,0)),this.generateRoundPolygon("round-pentagon",Ns(5,0)),this.generatePolygon("hexagon",Ns(6,0)),this.generateRoundPolygon("round-hexagon",Ns(6,0)),this.generatePolygon("heptagon",Ns(7,0)),this.generateRoundPolygon("round-heptagon",Ns(7,0)),this.generatePolygon("octagon",Ns(8,0)),this.generateRoundPolygon("round-octagon",Ns(8,0));var n=new Array(20);{var i=OP(5,0),a=OP(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=e.deqFastCost*E)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(T>=e.deqNoDrawCost*CP)break;var w=e.deq(n,v,y);if(w.length>0)for(var k=0;k0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||aB;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},fJe=(function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:jS;Sd(this,t),this.idsByKey=new Oh,this.keyForId=new Oh,this.cachesByLvl=new Oh,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),Cd(t,[{key:"getIdsFor",value:o(function(r){r==null&&ui("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new ry,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Oh,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}])})(),m0e=25,NS=50,qS=-4,XP=3,nge=7.99,dJe=8,pJe=1024,mJe=1024,gJe=1024,yJe=.2,vJe=.8,xJe=10,bJe=.15,TJe=.1,wJe=.9,kJe=.9,EJe=100,SJe=1,j1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},CJe=qa({getKey:null,doesEleInvalidateKey:jS,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:H0e,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Pb=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=CJe(r);pr(n,i),n.lookup=new fJe(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),sa=Pb.prototype;sa.reasons=j1;sa.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};sa.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};sa.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new rT(function(r,n){return n.reqs-r.reqs});return e};sa.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};sa.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(oB(l*r))),n=nge||n>XP)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=m0e?g=m0e:f<=NS?g=NS:g=Math.ceil(f/NS)*NS,f>gJe||d>mJe)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;N--)L=a.getElement(t,e,r,N,j1.downscale);I()}else return a.queueElement(t,k.level-1),k;else{var C;if(!T&&!E&&!w)for(var _=n-1;_>=qS;_--){var D=u.get(t,_);if(D){C=D;break}}if(b(C))return a.queueElement(t,n),C;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+dJe),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};sa.invalidateElements=function(t){for(var e=0;e=yJe*t.width&&this.retireTexture(t)};sa.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>vJe&&t.fullnessChecks>=xJe?bd(r,t):t.fullnessChecks++};sa.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;bd(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,sB(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),bd(i,s),n.push(s),s}};sa.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};sa.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,j1.dequeue)}return i};sa.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=iB,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};sa.onDequeue=function(t){this.onDequeues.push(t)};sa.offDequeue=function(t){bd(this.onDequeues,t)};sa.setupDequeueing=rge.setupDequeueing({deqRedrawThreshold:EJe,deqCost:bJe,deqAvgCost:TJe,deqNoDrawCost:wJe,deqFastCost:kJe,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n=_Je||r>rC)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var I=o(function(M){if(n.validateLayersElesOrdering(M,t),n.levelIsComplete(M,t))return m=u[M],!0},"canUseAsTmpLvl"),N=o(function(M){if(!m)for(var R=r+M;Fb<=R&&R<=rC&&!I(R);R+=M);},"checkLvls");N(1),N(-1);for(var C=f.length-1;C>=0;C--){var _=f[C];_.invalid&&bd(f,_)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=Ms();for(var I=0;Iy0e||_>y0e)return null;var D=C*_;if(D>PJe)return null;var M=n.makeLayer(d,r);if(N!=null){var R=f.indexOf(N)+1;f.splice(R,0,M)}else(I.insert===void 0||I.insert)&&f.unshift(M);return M},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/AJe,T=!l,E=0;E=b||!Z0e(x.bb,w.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||T?n.queueLayer(x,w):n.drawEleInLayer(x,w,r,e),x.eles.push(w),S[r]=x}return m||(T?null:f)};Ua.getEleLevelForLayerLevel=function(t,e){return t};Ua.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,BJe),a.setImgSmoothing(s,!0))};Ua.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Ua.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n0){e=!0;break}}return e};Ua.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Ph(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Ua.invalidateLayer=function(t){if(this.lastInvalidationTime=Ph(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];bd(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,T=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,M),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,M),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),E=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],M);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),w=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),k=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),S=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,M)},"drawArrows"),A=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var L=e.pstyle("ghost").value==="yes";if(L){var I=e.pstyle("ghost-offset-x").pfValue,N=e.pstyle("ghost-offset-y").pfValue,C=e.pstyle("ghost-opacity").value,_=x*C;t.translate(I,N),T(_),S(_),t.translate(-I,-N)}else E();k(),T(),S(),w(),A(),r&&t.translate(u.x1,u.y1)}};sge=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");$h.drawEdgeOverlay=sge("overlay");$h.drawEdgeUnderlay=sge("underlay");$h.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};H0.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(jJe,"circle");o(T0e,"roundRect");H0.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation");if(s.strValue==="autorotate"){var l=yo(i,"labelAngle",e);r=t.isEdge()?l:0}else s.strValue==="none"?r=0:r=s.pfValue;return r};H0.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=yo(s,"labelX",r),h=yo(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=yo(s,"labelWidth",r),y=yo(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),T=e.pstyle("text-halign").value,E=e.pstyle("text-valign").value;b&&(T="center",E="center"),u+=v,h+=x;var w;switch(n?w=this.getTextAngle(e,r):w=0,w!==0&&(f=u,d=h,t.translate(f,d),t.rotate(w),u=0,h=0),E){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var k=e.pstyle("text-background-opacity").value,S=e.pstyle("text-border-opacity").value,A=e.pstyle("text-border-width").pfValue,L=e.pstyle("text-background-padding").pfValue,I=e.pstyle("text-background-shape").strValue,N=I==="round-rectangle"||I==="roundrectangle",C=I==="circle",_=2;if(k>0||A>0&&S>0){var D=t.fillStyle,M=t.strokeStyle,R=t.lineWidth,P=e.pstyle("text-background-color").value,B=e.pstyle("text-border-color").value,F=e.pstyle("text-border-style").value,G=k>0,$=A>0&&S>0,V=u-L;switch(T){case"left":V-=g;break;case"center":V-=g/2;break}var X=h-y-L,Q=g+2*L,H=y+2*L;if(G&&(t.fillStyle="rgba(".concat(P[0],",").concat(P[1],",").concat(P[2],",").concat(k*l,")")),$&&(t.strokeStyle="rgba(".concat(B[0],",").concat(B[1],",").concat(B[2],",").concat(S*l,")"),t.lineWidth=A,t.setLineDash))switch(F){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=A/4,t.setLineDash([]);break;case"solid":default:t.setLineDash([]);break}if(N?(t.beginPath(),T0e(t,V,X,Q,H,_)):C?(t.beginPath(),jJe(t,V,X,Q,H)):(t.beginPath(),t.rect(V,X,Q,H)),G&&t.fill(),$&&t.stroke(),$&&F==="double"){var ie=A/2;t.beginPath(),N?T0e(t,V+ie,X+ie,Q-2*ie,H-2*ie,_):t.rect(V+ie,X+ie,Q-2*ie,H-2*ie),t.stroke()}t.fillStyle=D,t.strokeStyle=M,t.lineWidth=R,t.setLineDash&&t.setLineDash([])}var Y=2*e.pstyle("text-outline-width").pfValue;if(Y>0&&(t.lineWidth=Y),e.pstyle("text-wrap").value==="wrap"){var le=yo(s,"labelWrapCachedLines",r),ee=yo(s,"labelLineHeight",r),J=g/2,te=this.getLabelJustification(e);switch(te==="auto"||(T==="left"?te==="left"?u+=-g:te==="center"&&(u+=-J):T==="center"?te==="left"?u+=-J:te==="right"&&(u+=J):T==="right"&&(te==="center"?u+=J:te==="right"&&(u+=g))),E){case"top":h-=(le.length-1)*ee;break;case"center":case"bottom":h-=(le.length-1)*ee;break}for(var Z=0;Z0&&t.strokeText(le[Z],u,h),t.fillText(le[Z],u,h),h+=ee}else Y>0&&t.strokeText(p,u,h),t.fillText(p,u,h);w!==0&&(t.rotate(-w),t.translate(-f,-d))}}};_d={};_d.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!Nt(d.x)||!Nt(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),T=b.value,E=new Array(T.length),w=new Array(T.length),k=0,S=0;S0&&arguments[0]!==void 0?arguments[0]:_;s.eleFillStyle(t,e,U)},"setupShapeColor"),ee=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;s.colorStrokeStyle(t,D[0],D[1],D[2],U)},"setupBorderColor"),J=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:H;s.colorStrokeStyle(t,X[0],X[1],X[2],U)},"setupOutlineColor"),te=o(function(U,ce,z,ne){var se=s.nodePathCache=s.nodePathCache||[],be=W0e(z==="polygon"?z+","+ne.join(","):z,""+ce,""+U,""+Y),pe=se[be],me,Re=!1;return pe!=null?(me=pe,Re=!0,f.pathCache=me):(me=new Path2D,se[be]=f.pathCache=me),{path:me,cacheHit:Re}},"getPath"),Z=e.pstyle("shape").strValue,xe=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var de=te(l,u,Z,xe);g=de.path,y=de.cacheHit}var Se=o(function(){if(!y){var U=d;m&&(U={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,U.x,U.y,l,u,Y,f)}m?t.fill(g):t.fill()},"drawShape"),Me=o(function(){for(var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,z=h.backgrounding,ne=0,se=0;se0&&arguments[0]!==void 0?arguments[0]:!1,ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,ce),U&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Y,f)))},"drawPie"),we=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasStripe(e)&&(t.save(),m?t.clip(f.pathCache):(s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Y,f),t.clip()),s.drawStripe(t,e,ce),t.restore(),U&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Y,f)))},"drawStripe"),_e=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,ce=(N>0?N:-N)*U,z=N>0?0:255;N!==0&&(s.colorFillStyle(t,z,z,z,ce),m?t.fill(g):t.fill())},"darken"),$e=o(function(){if(C>0){if(t.lineWidth=C,t.lineCap=P,t.lineJoin=R,t.setLineDash)switch(M){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(F),t.lineDashOffset=G;break;case"solid":case"double":t.setLineDash([]);break}if(B!=="center"){if(t.save(),t.lineWidth*=2,B==="inside")m?t.clip(g):t.clip();else{var U=new Path2D;U.rect(-l/2-C,-u/2-C,l+2*C,u+2*C),U.addPath(g),t.clip(U,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(M==="double"){t.lineWidth=C/3;var ce=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=ce}t.setLineDash&&t.setLineDash([])}},"drawBorder"),fe=o(function(){if(V>0){if(t.lineWidth=V,t.lineCap="butt",t.setLineDash)switch(Q){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var U=d;m&&(U={x:0,y:0});var ce=s.getNodeShape(e),z=C;B==="inside"&&(z=0),B==="outside"&&(z*=2);var ne=(l+z+(V+ie))/l,se=(u+z+(V+ie))/u,be=l*ne,pe=u*se,me=s.nodeShapes[ce].points,Re;if(m){var ge=te(be,pe,ce,me);Re=ge.path}if(ce==="ellipse")s.drawEllipsePath(Re||t,U.x,U.y,be,pe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(ce)){var Ie=0,qe=0,Pe=0;ce==="round-diamond"?Ie=(z+ie+V)*1.4:ce==="round-heptagon"?(Ie=(z+ie+V)*1.075,Pe=-(z/2+ie+V)/35):ce==="round-hexagon"?Ie=(z+ie+V)*1.12:ce==="round-pentagon"?(Ie=(z+ie+V)*1.13,Pe=-(z/2+ie+V)/15):ce==="round-tag"?(Ie=(z+ie+V)*1.12,qe=(z/2+V+ie)*.07):ce==="round-triangle"&&(Ie=(z+ie+V)*(Math.PI/2),Pe=-(z+ie/2+V)/Math.PI),Ie!==0&&(ne=(l+Ie)/l,be=l*ne,["round-hexagon","round-tag"].includes(ce)||(se=(u+Ie)/u,pe=u*se)),Y=Y==="auto"?tme(be,pe):Y;for(var Xe=be/2,oe=pe/2,et=Y+(z+V+ie)/2,he=new Array(me.length/2),ot=new Array(me.length/2),Dt=0;Dt0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");_d.drawNodeOverlay=oge("overlay");_d.drawNodeUnderlay=oge("underlay");_d.hasPie=function(t){return t=t[0],t._private.hasPie};_d.hasStripe=function(t){return t=t[0],t._private.hasStripe};_d.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=e.pstyle("pie-hole"),l=e.pstyle("pie-start-angle").pfValue,u=n.x,h=n.y,f=e.width(),d=e.height(),p=Math.min(f,d)/2,m,g=0,y=this.usePaths();if(y&&(u=0,h=0),a.units==="%"?p=p*a.pfValue:a.pfValue!==void 0&&(p=a.pfValue/2),s.units==="%"?m=p*s.pfValue:s.pfValue!==void 0&&(m=s.pfValue/2),!(m>=p))for(var v=1;v<=i.pieBackgroundN;v++){var x=e.pstyle("pie-"+v+"-background-size").value,b=e.pstyle("pie-"+v+"-background-color").value,T=e.pstyle("pie-"+v+"-background-opacity").value*r,E=x/100;E+g>1&&(E=1-g);var w=1.5*Math.PI+2*Math.PI*g;w+=l;var k=2*Math.PI*E,S=w+k;x===0||g>=1||g+E>1||(m===0?(t.beginPath(),t.moveTo(u,h),t.arc(u,h,p,w,S),t.closePath()):(t.beginPath(),t.arc(u,h,p,w,S),t.arc(u,h,m,S,w,!0),t.closePath()),this.colorFillStyle(t,b[0],b[1],b[2],T),t.fill(),g+=E)}};_d.drawStripe=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=n.x,s=n.y,l=e.width(),u=e.height(),h=0,f=this.usePaths();t.save();var d=e.pstyle("stripe-direction").value,p=e.pstyle("stripe-size");switch(d){case"vertical":break;case"righward":t.rotate(-Math.PI/2);break}var m=l,g=u;p.units==="%"?(m=m*p.pfValue,g=g*p.pfValue):p.pfValue!==void 0&&(m=p.pfValue,g=p.pfValue),f&&(a=0,s=0),s-=m/2,a-=g/2;for(var y=1;y<=i.stripeBackgroundN;y++){var v=e.pstyle("stripe-"+y+"-background-size").value,x=e.pstyle("stripe-"+y+"-background-color").value,b=e.pstyle("stripe-"+y+"-background-opacity").value*r,T=v/100;T+h>1&&(T=1-h),!(v===0||h>=1||h+T>1)&&(t.beginPath(),t.rect(a,s+g*h,m,g*T),t.closePath(),this.colorFillStyle(t,x[0],x[1],x[2],b),t.fill(),h+=T)}t.restore()};Is={},XJe=100;Is.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};Is.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;ie.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!d&&(f[e.NODE]=!0,f[e.SELECT_BOX]=!0);var b=r.style(),T=r.zoom(),E=s!==void 0?s:T,w=r.pan(),k={x:w.x,y:w.y},S={zoom:T,pan:{x:w.x,y:w.y}},A=e.prevViewport,L=A===void 0||S.zoom!==A.zoom||S.pan.x!==A.pan.x||S.pan.y!==A.pan.y;!L&&!(y&&!g)&&(e.motionBlurPxRatio=1),l&&(k=l),E*=u,k.x*=u,k.y*=u;var I=e.getCachedZSortedEles();function N(ee,J,te,Z,xe){var de=ee.globalCompositeOperation;ee.globalCompositeOperation="destination-out",e.colorFillStyle(ee,255,255,255,e.motionBlurTransparency),ee.fillRect(J,te,Z,xe),ee.globalCompositeOperation=de}o(N,"mbclear");function C(ee,J){var te,Z,xe,de;!e.clearingMotionBlur&&(ee===h.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||ee===h.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(te={x:w.x*m,y:w.y*m},Z=T*m,xe=e.canvasWidth*m,de=e.canvasHeight*m):(te=k,Z=E,xe=e.canvasWidth,de=e.canvasHeight),ee.setTransform(1,0,0,1,0,0),J==="motionBlur"?N(ee,0,0,xe,de):!n&&(J===void 0||J)&&ee.clearRect(0,0,xe,de),i||(ee.translate(te.x,te.y),ee.scale(Z,Z)),l&&ee.translate(l.x,l.y),s&&ee.scale(s,s)}if(o(C,"setContextTransform"),d||(e.textureDrawLastFrame=!1),d){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=r.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var _=e.data.bufferContexts[e.TEXTURE_BUFFER];_.setTransform(1,0,0,1,0,0),_.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:_,drawOnlyNodeLayer:!0,forcedPxRatio:u*e.textureMult});var S=e.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:e.canvasWidth,height:e.canvasHeight};S.mpan={x:(0-S.pan.x)/S.zoom,y:(0-S.pan.y)/S.zoom}}f[e.DRAG]=!1,f[e.NODE]=!1;var D=h.contexts[e.NODE],M=e.textureCache.texture,S=e.textureCache.viewport;D.setTransform(1,0,0,1,0,0),p?N(D,0,0,S.width,S.height):D.clearRect(0,0,S.width,S.height);var R=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;e.colorFillStyle(D,R[0],R[1],R[2],P),D.fillRect(0,0,S.width,S.height);var T=r.zoom();C(D,!1),D.clearRect(S.mpan.x,S.mpan.y,S.width/S.zoom/u,S.height/S.zoom/u),D.drawImage(M,S.mpan.x,S.mpan.y,S.width/S.zoom/u,S.height/S.zoom/u)}else e.textureOnViewport&&!n&&(e.textureCache=null);var B=r.extent(),F=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),G=e.hideEdgesOnViewport&&F,$=[];if($[e.NODE]=!f[e.NODE]&&p&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,$[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),$[e.DRAG]=!f[e.DRAG]&&p&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,$[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),f[e.NODE]||i||a||$[e.NODE]){var V=p&&!$[e.NODE]&&m!==1,D=n||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:h.contexts[e.NODE]),X=p&&!V?"motionBlur":void 0;C(D,X),G?e.drawCachedNodes(D,I.nondrag,u,B):e.drawLayeredElements(D,I.nondrag,u,B),e.debug&&e.drawDebugPoints(D,I.nondrag),!i&&!p&&(f[e.NODE]=!1)}if(!a&&(f[e.DRAG]||i||$[e.DRAG])){var V=p&&!$[e.DRAG]&&m!==1,D=n||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:h.contexts[e.DRAG]);C(D,p&&!V?"motionBlur":void 0),G?e.drawCachedNodes(D,I.drag,u,B):e.drawCachedElements(D,I.drag,u,B),e.debug&&e.drawDebugPoints(D,I.drag),!i&&!p&&(f[e.DRAG]=!1)}if(this.drawSelectionRectangle(t,C),p&&m!==1){var Q=h.contexts[e.NODE],H=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],ie=h.contexts[e.DRAG],Y=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],le=o(function(J,te,Z){J.setTransform(1,0,0,1,0,0),Z||!x?J.clearRect(0,0,e.canvasWidth,e.canvasHeight):N(J,0,0,e.canvasWidth,e.canvasHeight);var xe=m;J.drawImage(te,0,0,e.canvasWidth*xe,e.canvasHeight*xe,0,0,e.canvasWidth,e.canvasHeight)},"drawMotionBlur");(f[e.NODE]||$[e.NODE])&&(le(Q,H,$[e.NODE]),f[e.NODE]=!1),(f[e.DRAG]||$[e.DRAG])&&(le(ie,Y,$[e.DRAG]),f[e.DRAG]=!1)}e.prevViewport=S,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),p&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!d,e.mbFrames=0,f[e.NODE]=!0,f[e.DRAG]=!0,e.redraw()},XJe)),n||r.emit("render")};Is.drawSelectionRectangle=function(t,e){var r=this,n=r.cy,i=r.data,a=n.style(),s=t.drawOnlyNodeLayer,l=t.drawAllLayers,u=i.canvasNeedsRedraw,h=t.forcedContext;if(r.showFps||!s&&u[r.SELECT_BOX]&&!l){var f=h||i.contexts[r.SELECT_BOX];if(e(f),r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var d=r.cy.zoom(),p=a.core("selection-box-border-width").value/d;f.lineWidth=p,f.fillStyle="rgba("+a.core("selection-box-color").value[0]+","+a.core("selection-box-color").value[1]+","+a.core("selection-box-color").value[2]+","+a.core("selection-box-opacity").value+")",f.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),p>0&&(f.strokeStyle="rgba("+a.core("selection-box-border-color").value[0]+","+a.core("selection-box-border-color").value[1]+","+a.core("selection-box-border-color").value[2]+","+a.core("selection-box-opacity").value+")",f.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(i.bgActivePosistion&&!r.hoverData.selecting){var d=r.cy.zoom(),m=i.bgActivePosistion;f.fillStyle="rgba("+a.core("active-bg-color").value[0]+","+a.core("active-bg-color").value[1]+","+a.core("active-bg-color").value[2]+","+a.core("active-bg-opacity").value+")",f.beginPath(),f.arc(m.x,m.y,a.core("active-bg-size").pfValue/d,0,2*Math.PI),f.fill()}var g=r.lastRedrawTime;if(r.showFps&&g){g=Math.round(g);var y=Math.round(1e3/g),v="1 frame = "+g+" ms = "+y+" fps";if(f.setTransform(1,0,0,1,0,0),f.fillStyle="rgba(255, 0, 0, 0.75)",f.strokeStyle="rgba(255, 0, 0, 0.75)",f.font="30px Arial",!Lb){var x=f.measureText(v);Lb=x.actualBoundingBoxAscent}f.fillText(v,0,Lb);var b=60;f.strokeRect(0,Lb+10,250,20),f.fillRect(0,Lb+10,250*Math.min(y/b,1),20)}l||(u[r.SELECT_BOX]=!1)}};o(w0e,"compileShader");o(KJe,"createProgram");o(QJe,"createTextureCanvas");o(EB,"getEffectivePanZoom");o(ZJe,"getEffectiveZoom");o(JJe,"modelToRenderedPosition");o(eet,"isSimpleShape");o(tet,"arrayEqual");o(M0,"toWebGLColor");o(q1,"indexToVec4");o(ret,"vec4ToIndex");o(net,"createTexture");o(lge,"getTypeInfo");o(cge,"createTypedArray");o(iet,"createTypedArrayView");o(aet,"createBufferStaticDraw");o(Eu,"createBufferDynamicDraw");o(set,"create3x3MatrixBufferDynamicDraw");o(oet,"createPickingFrameBuffer");k0e=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});o(_P,"create");o(E0e,"identity");o(cet,"multiply");o(US,"translate");o(S0e,"rotate");o(KP,"scale");o(uet,"projection");het=(function(){function t(e,r,n,i){Sd(this,t),this.debugID=Math.floor(Math.random()*1e4),this.r=e,this.texSize=r,this.texRows=n,this.texHeight=Math.floor(r/n),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=i(e,r,r),this.scratch=i(e,r,this.texHeight,"scratch")}return o(t,"Atlas"),Cd(t,[{key:"lock",value:o(function(){this.locked=!0},"lock")},{key:"getKeys",value:o(function(){return new Set(this.keyToLocation.keys())},"getKeys")},{key:"getScale",value:o(function(r){var n=r.w,i=r.h,a=this.texHeight,s=this.texSize,l=a/i,u=n*l,h=i*l;return u>s&&(l=s/n,u=n*l,h=i*l),{scale:l,texW:u,texH:h}},"getScale")},{key:"draw",value:o(function(r,n,i){var a=this;if(this.locked)throw new Error("can't draw, atlas is locked");var s=this.texSize,l=this.texRows,u=this.texHeight,h=this.getScale(n),f=h.scale,d=h.texW,p=h.texH,m=o(function(T,E){if(i&&E){var w=E.context,k=T.x,S=T.row,A=k,L=u*S;w.save(),w.translate(A,L),w.scale(f,f),i(w,n),w.restore()}},"drawAt"),g=[null,null],y=o(function(){m(a.freePointer,a.canvas),g[0]={x:a.freePointer.x,y:a.freePointer.row*u,w:d,h:p},g[1]={x:a.freePointer.x+d,y:a.freePointer.row*u,w:0,h:p},a.freePointer.x+=d,a.freePointer.x==s&&(a.freePointer.x=0,a.freePointer.row++)},"drawNormal"),v=o(function(){var T=a.scratch,E=a.canvas;T.clear(),m({x:0,row:0},T);var w=s-a.freePointer.x,k=d-w,S=u;{var A=a.freePointer.x,L=a.freePointer.row*u,I=w;E.context.drawImage(T,0,0,I,S,A,L,I,S),g[0]={x:A,y:L,w:I,h:p}}{var N=w,C=(a.freePointer.row+1)*u,_=k;E&&E.context.drawImage(T,N,0,_,S,0,C,_,S),g[1]={x:0,y:C,w:_,h:p}}a.freePointer.x=k,a.freePointer.row++},"drawWrapped"),x=o(function(){a.freePointer.x=0,a.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+d<=s)y();else{if(this.freePointer.row>=l-1)return!1;this.freePointer.x===s?(x(),y()):this.enableWrapping?v():(x(),y())}return this.keyToLocation.set(r,g),this.needsBuffer=!0,g},"draw")},{key:"getOffsets",value:o(function(r){return this.keyToLocation.get(r)},"getOffsets")},{key:"isEmpty",value:o(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:o(function(r){if(this.locked)return!1;var n=this.texSize,i=this.texRows,a=this.getScale(r),s=a.texW;return this.freePointer.x+s>n?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},a=i.forceRedraw,s=a===void 0?!1:a,l=i.filterEle,u=l===void 0?function(){return!0}:l,h=i.filterType,f=h===void 0?function(){return!0}:h,d=!1,p=!1,m=xo(r),g;try{for(m.s();!(g=m.n()).done;){var y=g.value;if(u(y)){var v=xo(this.renderTypes.values()),x;try{var b=o(function(){var E=x.value,w=E.type;if(f(w)){var k=n.collections.get(E.collection),S=E.getKey(y),A=Array.isArray(S)?S:[S];if(s)A.forEach(function(C){return k.markKeyForGC(C)}),p=!0;else{var L=E.getID?E.getID(y):y.id(),I=n._key(w,L),N=n.typeAndIdToKey.get(I);N!==void 0&&!tet(A,N)&&(d=!0,n.typeAndIdToKey.delete(I),N.forEach(function(C){return k.markKeyForGC(C)}))}}},"_loop2");for(v.s();!(x=v.n()).done;)b()}catch(T){v.e(T)}finally{v.f()}}}}catch(T){m.e(T)}finally{m.f()}return p&&(this.gc(),d=!1),d},"invalidate")},{key:"gc",value:o(function(){var r=xo(this.collections.values()),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;i.gc()}}catch(a){r.e(a)}finally{r.f()}},"gc")},{key:"getOrCreateAtlas",value:o(function(r,n,i,a){var s=this.renderTypes.get(n),l=this.collections.get(s.collection),u=!1,h=l.draw(a,i,function(p){s.drawClipped?(p.save(),p.beginPath(),p.rect(0,0,i.w,i.h),p.clip(),s.drawElement(p,r,i,!0,!0),p.restore()):s.drawElement(p,r,i,!0,!0),u=!0});if(u){var f=s.getID?s.getID(r):r.id(),d=this._key(n,f);this.typeAndIdToKey.has(d)?this.typeAndIdToKey.get(d).push(a):this.typeAndIdToKey.set(d,[a])}return h},"getOrCreateAtlas")},{key:"getAtlasInfo",value:o(function(r,n){var i=this,a=this.renderTypes.get(n),s=a.getKey(r),l=Array.isArray(s)?s:[s];return l.map(function(u){var h=a.getBoundingBox(r,u),f=i.getOrCreateAtlas(r,n,h,u),d=f.getOffsets(u),p=Wi(d,2),m=p[0],g=p[1];return{atlas:f,tex:m,tex1:m,tex2:g,bb:h}})},"getAtlasInfo")},{key:"getDebugInfo",value:o(function(){var r=[],n=xo(this.collections),i;try{for(n.s();!(i=n.n()).done;){var a=Wi(i.value,2),s=a[0],l=a[1],u=l.getCounts(),h=u.keyCount,f=u.atlasCount;r.push({type:s,keyCount:h,atlasCount:f})}}catch(d){n.e(d)}finally{n.f()}return r},"getDebugInfo")}])})(),met=(function(){function t(e){Sd(this,t),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]}return o(t,"AtlasBatchManager"),Cd(t,[{key:"getMaxAtlasesPerBatch",value:o(function(){return this.maxAtlasesPerBatch},"getMaxAtlasesPerBatch")},{key:"getAtlasSize",value:o(function(){return this.atlasSize},"getAtlasSize")},{key:"getIndexArray",value:o(function(){return Array.from({length:this.maxAtlasesPerBatch},function(r,n){return n})},"getIndexArray")},{key:"startBatch",value:o(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:o(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:o(function(){return this.batchAtlases},"getAtlases")},{key:"canAddToCurrentBatch",value:o(function(r){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(r):!0},"canAddToCurrentBatch")},{key:"getAtlasIndexForBatch",value:o(function(r){var n=this.batchAtlases.indexOf(r);if(n<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(r),n=this.batchAtlases.length-1}return n},"getAtlasIndexForBatch")}])})(),get=` + float circleSD(vec2 p, float r) { + return distance(vec2(0), p) - r; // signed distance + } +`,yet=` + float rectangleSD(vec2 p, vec2 b) { + vec2 d = abs(p)-b; + return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); + } +`,vet=` + float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { + cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; + cr.x = (p.y > 0.0) ? cr.x : cr.y; + vec2 q = abs(p) - b + cr.x; + return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; + } +`,xet=` + float ellipseSD(vec2 p, vec2 ab) { + p = abs( p ); // symmetry + + // find root with Newton solver + vec2 q = ab*(p-ab); + float w = (q.x1.0) ? d : -d; + } +`,$b={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},nC={IGNORE:1,USE_BB:2},DP=0,C0e=1,A0e=2,RP=3,U1=4,MS=5,Nb=6,Mb=7,bet=(function(){function t(e,r,n){Sd(this,t),this.r=e,this.gl=r,this.maxInstances=n.webglBatchSize,this.atlasSize=n.webglTexSize,this.bgColor=n.bgColor,this.debug=n.webglDebug,this.batchDebugInfo=[],n.enableWrapping=!0,n.createTextureCanvas=QJe,this.atlasManager=new pet(e,n),this.batchManager=new met(n),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram($b.SCREEN),this.pickingProgram=this._createShaderProgram($b.PICKING),this.vao=this._createVAO()}return o(t,"ElementDrawingWebGL"),Cd(t,[{key:"addAtlasCollection",value:o(function(r,n){this.atlasManager.addAtlasCollection(r,n)},"addAtlasCollection")},{key:"addTextureAtlasRenderType",value:o(function(r,n){this.atlasManager.addRenderType(r,n)},"addTextureAtlasRenderType")},{key:"addSimpleShapeRenderType",value:o(function(r,n){this.simpleShapeOptions.set(r,n)},"addSimpleShapeRenderType")},{key:"invalidate",value:o(function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.type,a=this.atlasManager;return i?a.invalidate(r,{filterType:o(function(l){return l===i},"filterType"),forceRedraw:!0}):a.invalidate(r)},"invalidate")},{key:"gc",value:o(function(){this.atlasManager.gc()},"gc")},{key:"_createShaderProgram",value:o(function(r){var n=this.gl,i=`#version 300 es + precision highp float; + + uniform mat3 uPanZoomMatrix; + uniform int uAtlasSize; + + // instanced + in vec2 aPosition; // a vertex from the unit square + + in mat3 aTransform; // used to transform verticies, eg into a bounding box + in int aVertType; // the type of thing we are rendering + + // the z-index that is output when using picking mode + in vec4 aIndex; + + // For textures + in int aAtlasId; // which shader unit/atlas to use + in vec4 aTex; // x/y/w/h of texture in atlas + + // for edges + in vec4 aPointAPointB; + in vec4 aPointCPointD; + in vec2 aLineWidth; // also used for node border width + + // simple shapes + in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] + in vec4 aColor; // also used for edges + in vec4 aBorderColor; // aLineWidth is used for border width + + // output values passed to the fragment shader + out vec2 vTexCoord; + out vec4 vColor; + out vec2 vPosition; + // flat values are not interpolated + flat out int vAtlasId; + flat out int vVertType; + flat out vec2 vTopRight; + flat out vec2 vBotLeft; + flat out vec4 vCornerRadius; + flat out vec4 vBorderColor; + flat out vec2 vBorderWidth; + flat out vec4 vIndex; + + void main(void) { + int vid = gl_VertexID; + vec2 position = aPosition; // TODO make this a vec3, simplifies some code below + + if(aVertType == `.concat(DP,`) { + float texX = aTex.x; // texture coordinates + float texY = aTex.y; + float texW = aTex.z; + float texH = aTex.w; + + if(vid == 1 || vid == 2 || vid == 4) { + texX += texW; + } + if(vid == 2 || vid == 4 || vid == 5) { + texY += texH; + } + + float d = float(uAtlasSize); + vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(U1," || aVertType == ").concat(Mb,` + || aVertType == `).concat(MS," || aVertType == ").concat(Nb,`) { // simple shapes + + // the bounding box is needed by the fragment shader + vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat + vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat + vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated + + // calculations are done in the fragment shader, just pass these along + vColor = aColor; + vCornerRadius = aCornerRadius; + vBorderColor = aBorderColor; + vBorderWidth = aLineWidth; + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(C0e,`) { + vec2 source = aPointAPointB.xy; + vec2 target = aPointAPointB.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + // stretch the unit square into a long skinny rectangle + vec2 xBasis = target - source; + vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); + vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; + + gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); + vColor = aColor; + } + else if(aVertType == `).concat(A0e,`) { + vec2 pointA = aPointAPointB.xy; + vec2 pointB = aPointAPointB.zw; + vec2 pointC = aPointCPointD.xy; + vec2 pointD = aPointCPointD.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + vec2 p0, p1, p2, pos; + if(position.x == 0.0) { // The left side of the unit square + p0 = pointA; + p1 = pointB; + p2 = pointC; + pos = position; + } else { // The right side of the unit square, use same approach but flip the geometry upside down + p0 = pointD; + p1 = pointC; + p2 = pointB; + pos = vec2(0.0, -position.y); + } + + vec2 p01 = p1 - p0; + vec2 p12 = p2 - p1; + vec2 p21 = p1 - p2; + + // Find the normal vector. + vec2 tangent = normalize(normalize(p12) + normalize(p01)); + vec2 normal = vec2(-tangent.y, tangent.x); + + // Find the vector perpendicular to p0 -> p1. + vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); + + // Determine the bend direction. + float sigma = sign(dot(p01 + p21, normal)); + float width = aLineWidth[0]; + + if(sign(pos.y) == -sigma) { + // This is an intersecting vertex. Adjust the position so that there's no overlap. + vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } else { + // This is a non-intersecting vertex. Treat it like a mitre join. + vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } + + vColor = aColor; + } + else if(aVertType == `).concat(RP,` && vid < 3) { + // massage the first triangle into an edge arrow + if(vid == 0) + position = vec2(-0.15, -0.3); + if(vid == 1) + position = vec2( 0.0, 0.0); + if(vid == 2) + position = vec2( 0.15, -0.3); + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + vColor = aColor; + } + else { + gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space + } + + vAtlasId = aAtlasId; + vVertType = aVertType; + vIndex = aIndex; + } + `),a=this.batchManager.getIndexArray(),s=`#version 300 es + precision highp float; + + // declare texture unit for each texture atlas in the batch + `.concat(a.map(function(h){return"uniform sampler2D uTexture".concat(h,";")}).join(` + `),` + + uniform vec4 uBGColor; + uniform float uZoom; + + in vec2 vTexCoord; + in vec4 vColor; + in vec2 vPosition; // model coordinates + + flat in int vAtlasId; + flat in vec4 vIndex; + flat in int vVertType; + flat in vec2 vTopRight; + flat in vec2 vBotLeft; + flat in vec4 vCornerRadius; + flat in vec4 vBorderColor; + flat in vec2 vBorderWidth; + + out vec4 outColor; + + `).concat(get,` + `).concat(yet,` + `).concat(vet,` + `).concat(xet,` + + vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha + return vec4( + top.rgb + (bot.rgb * (1.0 - top.a)), + top.a + (bot.a * (1.0 - top.a)) + ); + } + + vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance + // scale to the zoom level so that borders don't look blurry when zoomed in + // note 1.5 is an aribitrary value chosen because it looks good + return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); + } + + void main(void) { + if(vVertType == `).concat(DP,`) { + // look up the texel from the texture unit + `).concat(a.map(function(h){return"if(vAtlasId == ".concat(h,") outColor = texture(uTexture").concat(h,", vTexCoord);")}).join(` + else `),` + } + else if(vVertType == `).concat(RP,`) { + // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; + outColor = blend(vColor, uBGColor); + outColor.a = 1.0; // make opaque, masks out line under arrow + } + else if(vVertType == `).concat(U1,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border + outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done + } + else if(vVertType == `).concat(U1," || vVertType == ").concat(Mb,` + || vVertType == `).concat(MS," || vVertType == ").concat(Nb,`) { // use SDF + + float outerBorder = vBorderWidth[0]; + float innerBorder = vBorderWidth[1]; + float borderPadding = outerBorder * 2.0; + float w = vTopRight.x - vBotLeft.x - borderPadding; + float h = vTopRight.y - vBotLeft.y - borderPadding; + vec2 b = vec2(w/2.0, h/2.0); // half width, half height + vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center + + float d; // signed distance + if(vVertType == `).concat(U1,`) { + d = rectangleSD(p, b); + } else if(vVertType == `).concat(Mb,` && w == h) { + d = circleSD(p, b.x); // faster than ellipse + } else if(vVertType == `).concat(Mb,`) { + d = ellipseSD(p, b); + } else { + d = roundRectangleSD(p, b, vCornerRadius.wzyx); + } + + // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling + // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box + if(d > 0.0) { + if(d > outerBorder) { + discard; + } else { + outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); + } + } else { + if(d > innerBorder) { + vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; + vec4 innerBorderColor = blend(vBorderColor, vColor); + outColor = distInterp(innerBorderColor, outerColor, d); + } + else { + vec4 outerColor; + if(innerBorder == 0.0 && outerBorder == 0.0) { + outerColor = vec4(0); + } else if(innerBorder == 0.0) { + outerColor = vBorderColor; + } else { + outerColor = blend(vBorderColor, vColor); + } + outColor = distInterp(vColor, outerColor, d - innerBorder); + } + } + } + else { + outColor = vColor; + } + + `).concat(r.picking?`if(outColor.a == 0.0) discard; + else outColor = vIndex;`:"",` + } + `),l=KJe(n,i,s);l.aPosition=n.getAttribLocation(l,"aPosition"),l.aIndex=n.getAttribLocation(l,"aIndex"),l.aVertType=n.getAttribLocation(l,"aVertType"),l.aTransform=n.getAttribLocation(l,"aTransform"),l.aAtlasId=n.getAttribLocation(l,"aAtlasId"),l.aTex=n.getAttribLocation(l,"aTex"),l.aPointAPointB=n.getAttribLocation(l,"aPointAPointB"),l.aPointCPointD=n.getAttribLocation(l,"aPointCPointD"),l.aLineWidth=n.getAttribLocation(l,"aLineWidth"),l.aColor=n.getAttribLocation(l,"aColor"),l.aCornerRadius=n.getAttribLocation(l,"aCornerRadius"),l.aBorderColor=n.getAttribLocation(l,"aBorderColor"),l.uPanZoomMatrix=n.getUniformLocation(l,"uPanZoomMatrix"),l.uAtlasSize=n.getUniformLocation(l,"uAtlasSize"),l.uBGColor=n.getUniformLocation(l,"uBGColor"),l.uZoom=n.getUniformLocation(l,"uZoom"),l.uTextures=[];for(var u=0;u1&&arguments[1]!==void 0?arguments[1]:$b.SCREEN;this.panZoomMatrix=r,this.renderTarget=n,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()},"startFrame")},{key:"startBatch",value:o(function(){this.instanceCount=0,this.batchManager.startBatch()},"startBatch")},{key:"endFrame",value:o(function(){this.endBatch()},"endFrame")},{key:"_isVisible",value:o(function(r,n){return r.visible()?n&&n.isVisible?n.isVisible(r):!0:!1},"_isVisible")},{key:"drawTexture",value:o(function(r,n,i){var a=this.atlasManager,s=this.batchManager,l=a.getRenderTypeOpts(i);if(this._isVisible(r,l)&&!(r.isEdge()&&!this._isValidEdge(r))){if(this.renderTarget.picking&&l.getTexPickingMode){var u=l.getTexPickingMode(r);if(u===nC.IGNORE)return;if(u==nC.USE_BB){this.drawPickingRectangle(r,n,i);return}}var h=a.getAtlasInfo(r,i),f=xo(h),d;try{for(f.s();!(d=f.n()).done;){var p=d.value,m=p.atlas,g=p.tex1,y=p.tex2;s.canAddToCurrentBatch(m)||this.endBatch();for(var v=s.getAtlasIndexForBatch(m),x=0,b=[[g,!0],[y,!1]];x=this.maxInstances&&this.endBatch()}}}}catch(N){f.e(N)}finally{f.f()}}},"drawTexture")},{key:"setTransformMatrix",value:o(function(r,n,i,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,l=0;if(i.shapeProps&&i.shapeProps.padding&&(l=r.pstyle(i.shapeProps.padding).pfValue),a){var u=a.bb,h=a.tex1,f=a.tex2,d=h.w/(h.w+f.w);s||(d=1-d);var p=this._getAdjustedBB(u,l,s,d);this._applyTransformMatrix(n,p,i,r)}else{var m=i.getBoundingBox(r),g=this._getAdjustedBB(m,l,!0,1);this._applyTransformMatrix(n,g,i,r)}},"setTransformMatrix")},{key:"_applyTransformMatrix",value:o(function(r,n,i,a){var s,l;E0e(r);var u=i.getRotation?i.getRotation(a):0;if(u!==0){var h=i.getRotationPoint(a),f=h.x,d=h.y;US(r,r,[f,d]),S0e(r,r,u);var p=i.getRotationOffset(a);s=p.x+(n.xOffset||0),l=p.y+(n.yOffset||0)}else s=n.x1,l=n.y1;US(r,r,[s,l]),KP(r,r,[n.w,n.h])},"_applyTransformMatrix")},{key:"_getAdjustedBB",value:o(function(r,n,i,a){var s=r.x1,l=r.y1,u=r.w,h=r.h,f=r.yOffset;n&&(s-=n,l-=n,u+=2*n,h+=2*n);var d=0,p=u*a;return i&&a<1?u=p:!i&&a<1&&(d=u-p,s+=d,u=p),{x1:s,y1:l,w:u,h,xOffset:d,yOffset:f}},"_getAdjustedBB")},{key:"drawPickingRectangle",value:o(function(r,n,i){var a=this.atlasManager.getRenderTypeOpts(i),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=U1;var l=this.indexBuffer.getView(s);q1(n,l);var u=this.colorBuffer.getView(s);M0([0,0,0],1,u);var h=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(r,h,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()},"drawPickingRectangle")},{key:"drawNode",value:o(function(r,n,i){var a=this.simpleShapeOptions.get(i);if(this._isVisible(r,a)){var s=a.shapeProps,l=this._getVertTypeForShape(r,s.shape);if(l===void 0||a.isSimple&&!a.isSimple(r)){this.drawTexture(r,n,i);return}var u=this.instanceCount;if(this.vertTypeBuffer.getView(u)[0]=l,l===MS||l===Nb){var h=a.getBoundingBox(r),f=this._getCornerRadius(r,s.radius,h),d=this.cornerRadiusBuffer.getView(u);d[0]=f,d[1]=f,d[2]=f,d[3]=f,l===Nb&&(d[0]=0,d[2]=0)}var p=this.indexBuffer.getView(u);q1(n,p);var m=r.pstyle(s.color).value,g=r.pstyle(s.opacity).value,y=this.colorBuffer.getView(u);M0(m,g,y);var v=this.lineWidthBuffer.getView(u);if(v[0]=0,v[1]=0,s.border){var x=r.pstyle("border-width").value;if(x>0){var b=r.pstyle("border-color").value,T=r.pstyle("border-opacity").value,E=this.borderColorBuffer.getView(u);M0(b,T,E);var w=r.pstyle("border-position").value;if(w==="inside")v[0]=0,v[1]=-x;else if(w==="outside")v[0]=x,v[1]=0;else{var k=x/2;v[0]=k,v[1]=-k}}}var S=this.transformBuffer.getMatrixView(u);this.setTransformMatrix(r,S,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawNode")},{key:"_getVertTypeForShape",value:o(function(r,n){var i=r.pstyle(n).value;switch(i){case"rectangle":return U1;case"ellipse":return Mb;case"roundrectangle":case"round-rectangle":return MS;case"bottom-round-rectangle":return Nb;default:return}},"_getVertTypeForShape")},{key:"_getCornerRadius",value:o(function(r,n,i){var a=i.w,s=i.h;if(r.pstyle(n).value==="auto")return Td(a,s);var l=r.pstyle(n).pfValue,u=a/2,h=s/2;return Math.min(l,h,u)},"_getCornerRadius")},{key:"drawEdgeArrow",value:o(function(r,n,i){if(r.visible()){var a=r._private.rscratch,s,l,u;if(i==="source"?(s=a.arrowStartX,l=a.arrowStartY,u=a.srcArrowAngle):(s=a.arrowEndX,l=a.arrowEndY,u=a.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(l)||l==null||isNaN(u)||u==null)){var h=r.pstyle(i+"-arrow-shape").value;if(h!=="none"){var f=r.pstyle(i+"-arrow-color").value,d=r.pstyle("opacity").value,p=r.pstyle("line-opacity").value,m=d*p,g=r.pstyle("width").pfValue,y=r.pstyle("arrow-scale").value,v=this.r.getArrowWidth(g,y),x=this.instanceCount,b=this.transformBuffer.getMatrixView(x);E0e(b),US(b,b,[s,l]),KP(b,b,[v,v]),S0e(b,b,u),this.vertTypeBuffer.getView(x)[0]=RP;var T=this.indexBuffer.getView(x);q1(n,T);var E=this.colorBuffer.getView(x);M0(f,m,E),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:o(function(r,n){if(r.visible()){var i=this._getEdgePoints(r);if(i){var a=r.pstyle("opacity").value,s=r.pstyle("line-opacity").value,l=r.pstyle("width").pfValue,u=r.pstyle("line-color").value,h=a*s;if(i.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),i.length==4){var f=this.instanceCount;this.vertTypeBuffer.getView(f)[0]=C0e;var d=this.indexBuffer.getView(f);q1(n,d);var p=this.colorBuffer.getView(f);M0(u,h,p);var m=this.lineWidthBuffer.getView(f);m[0]=l;var g=this.pointAPointBBuffer.getView(f);g[0]=i[0],g[1]=i[1],g[2]=i[2],g[3]=i[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y=this.maxInstances&&this.endBatch()}}}},"drawEdgeLine")},{key:"_isValidEdge",value:o(function(r){var n=r._private.rscratch;return!(n.badLine||n.allpts==null||isNaN(n.allpts[0]))},"_isValidEdge")},{key:"_getEdgePoints",value:o(function(r){var n=r._private.rscratch;if(this._isValidEdge(r)){var i=n.allpts;if(i.length==4)return i;var a=this._getNumSegments(r);return this._getCurveSegmentPoints(i,a)}},"_getEdgePoints")},{key:"_getNumSegments",value:o(function(r){var n=15;return Math.min(Math.max(n,5),this.maxInstances)},"_getNumSegments")},{key:"_getCurveSegmentPoints",value:o(function(r,n){if(r.length==4)return r;for(var i=Array((n+1)*2),a=0;a<=n;a++)if(a==0)i[0]=r[0],i[1]=r[1];else if(a==n)i[a*2]=r[r.length-2],i[a*2+1]=r[r.length-1];else{var s=a/n;this._setCurvePoint(r,s,i,a*2)}return i},"_getCurveSegmentPoints")},{key:"_setCurvePoint",value:o(function(r,n,i,a){if(r.length<=2)i[a]=r[0],i[a+1]=r[1];else{for(var s=Array(r.length-2),l=0;l0}},"isLayerVisible"),l=o(function(d){var p=d.pstyle("text-events").strValue==="yes";return p?nC.USE_BB:nC.IGNORE},"getTexPickingMode"),u=o(function(d){var p=d.position(),m=p.x,g=p.y,y=d.outerWidth(),v=d.outerHeight();return{w:y,h:v,x1:m-y/2,y1:g-v/2}},"getBBForSimpleShape");r.drawing.addAtlasCollection("node",{texRows:t.webglTexRowsNodes}),r.drawing.addAtlasCollection("label",{texRows:t.webglTexRows}),r.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement}),r.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:u,isSimple:eet,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),r.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:u,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),r.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:u,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),r.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:l,getKey:LP(e.getLabelKey,null),getBoundingBox:NP(e.getLabelBox,null),drawClipped:!0,drawElement:e.drawLabel,getRotation:i(null),getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:a("label")}),r.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:l,getKey:LP(e.getSourceLabelKey,"source"),getBoundingBox:NP(e.getSourceLabelBox,"source"),drawClipped:!0,drawElement:e.drawSourceLabel,getRotation:i("source"),getRotationPoint:e.getSourceLabelRotationPoint,getRotationOffset:e.getSourceLabelRotationOffset,isVisible:a("source-label")}),r.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:l,getKey:LP(e.getTargetLabelKey,"target"),getBoundingBox:NP(e.getTargetLabelBox,"target"),drawClipped:!0,drawElement:e.drawTargetLabel,getRotation:i("target"),getRotationPoint:e.getTargetLabelRotationPoint,getRotationOffset:e.getTargetLabelRotationOffset,isVisible:a("target-label")});var h=tT(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(f,d){var p=!1;d&&d.length>0&&(p|=r.drawing.invalidate(d)),p&&h()}),wet(r)};o(Tet,"getBGColor");o(hge,"getLabelLines");LP=o(function(e,r){return function(n){var i=e(n),a=hge(n,r);return a.length>1?a.map(function(s,l){return"".concat(i,"_").concat(l)}):i}},"getStyleKeysForLabel"),NP=o(function(e,r){return function(n,i){var a=e(n);if(typeof i=="string"){var s=i.indexOf("_");if(s>0){var l=Number(i.substring(s+1)),u=hge(n,r),h=a.h/u.length,f=h*l,d=a.y1+f;return{x1:a.x1,w:a.w,y1:d,h,yOffset:f}}}return a}},"getBoundingBoxForLabel");o(wet,"overrideCanvasRendererFunctions");o(ket,"clearWebgl");o(Eet,"clearCanvas");o(Cet,"createPanZoomMatrix");o(fge,"setContextTransform");o(Aet,"drawSelectionRectangle");o(_et,"drawAxes");o(Det,"drawAtlases");o(Ret,"getPickingIndexes");o(Let,"findNearestElementsWebgl");o(MP,"drawEle");o(dge,"renderWebgl");Dd={};Dd.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o(Net,"b64ToBlob");o(R0e,"b64UriToB64");o(mge,"output");oT.png=function(t){return mge(t,this.bufferCanvasImage(t),"image/png")};oT.jpg=function(t){return mge(t,this.bufferCanvasImage(t),"image/jpeg")};gge={};gge.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};Met=yge,Wr=yge.prototype;Wr.CANVAS_LAYERS=3;Wr.SELECT_BOX=0;Wr.DRAG=1;Wr.NODE=2;Wr.WEBGL=3;Wr.CANVAS_TYPES=["2d","2d","2d","webgl2"];Wr.BUFFER_COUNT=3;Wr.TEXTURE_BUFFER=0;Wr.MOTIONBLUR_BUFFER_NODE=1;Wr.MOTIONBLUR_BUFFER_DRAG=2;o(yge,"CanvasRenderer");Wr.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Wr.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Wr.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Wr.SELECT_BOX]=e;break;case"gc":r.data.gc=!0;break}};Iet=typeof Path2D<"u";Wr.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Wr.usePaths=function(){return Iet&&this.pathsEnabled};Wr.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Wr.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Wr.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":aa(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[age,Du,$h,kB,H0,_d,Is,uge,Dd,oT,gge].forEach(function(t){pr(Wr,t)});Oet=[{name:"null",impl:Wme},{name:"base",impl:tge},{name:"canvas",impl:Met}],Pet=[{type:"layout",extensions:aJe},{type:"renderer",extensions:Oet}],vge={},xge={};o(bge,"setExtension");o(Tge,"getExtension");o(Bet,"setModule");o(Fet,"getModule");JP=o(function(){if(arguments.length===2)return Tge.apply(null,arguments);if(arguments.length===3)return bge.apply(null,arguments);if(arguments.length===4)return Fet.apply(null,arguments);if(arguments.length===5)return Bet.apply(null,arguments);ui("Invalid extension access syntax")},"extension");jb.prototype.extension=JP;Pet.forEach(function(t){t.extensions.forEach(function(e){bge(t.type,e.name,e.impl)})});iC=o(function(){if(!(this instanceof iC))return new iC;this.length=0},"Stylesheet"),U0=iC.prototype;U0.instanceString=function(){return"stylesheet"};U0.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};U0.css=function(t,e){var r=this.length-1;if(or(t))this[r].properties.push({name:t,value:e});else if(sn(t))for(var n=t,i=Object.keys(n),a=0;a{"use strict";o((function(e,r){typeof lT=="object"&&typeof CB=="object"?CB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof lT=="object"?lT.layoutBase=r():e.layoutBase=r()}),"webpackUniversalModuleDefinition")(lT,function(){return(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)})([(function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s}),(function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h}),(function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(w,1),x.target!=x.source&&x.target.edges.splice(k,1);var E=x.source.owner.getEdges().indexOf(x);if(E==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(E,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,T=this.getNodes(),E=T.length,w=0;wv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,T,E,w,k,S,A=this.nodes,L=A.length,I=0;IT&&(y=T),vw&&(x=w),bT&&(y=T),vw&&(x=w),b=this.nodes.length){var L=0;v.forEach(function(I){I.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p}),(function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=k,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,C=!0):(l[0]=g,l[1]=m,C=!0):D===R&&(u>f?(l[0]=p,l[1]=m,C=!0):(l[0]=x,l[1]=v,C=!0)),-M===R?f>u?(l[2]=S,l[3]=A,_=!0):(l[2]=k,l[3]=w,_=!0):M===R&&(f>u?(l[2]=E,l[3]=w,_=!0):(l[2]=L,l[3]=A,_=!0)),C&&_)return!1;if(u>f?h>d?(P=this.getCardinalDirection(D,R,4),B=this.getCardinalDirection(M,R,2)):(P=this.getCardinalDirection(-D,R,3),B=this.getCardinalDirection(-M,R,1)):h>d?(P=this.getCardinalDirection(-D,R,1),B=this.getCardinalDirection(-M,R,3)):(P=this.getCardinalDirection(D,R,2),B=this.getCardinalDirection(M,R,4)),!C)switch(P){case 1:G=m,F=u+-T/R,l[0]=F,l[1]=G;break;case 2:F=x,G=h+b*R,l[0]=F,l[1]=G;break;case 3:G=v,F=u+T/R,l[0]=F,l[1]=G;break;case 4:F=y,G=h+-b*R,l[0]=F,l[1]=G;break}if(!_)switch(B){case 1:V=w,$=f+-N/R,l[2]=$,l[3]=V;break;case 2:$=L,V=d+I*R,l[2]=$,l[3]=V;break;case 3:V=A,$=f+N/R,l[2]=$,l[3]=V;break;case 4:$=S,V=d+-I*R,l[2]=$,l[3]=V;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,E=void 0,w=void 0,k=void 0,S=void 0,A=void 0,L=void 0;return T=p-f,w=h-d,S=d*f-h*p,E=v-g,k=m-y,A=y*g-m*v,L=T*k-E*w,L===0?null:(x=(w*A-k*S)/L,b=(E*S-T*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n}),(function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i}),(function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(w[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var S=k.getEdges(),x=0;x-1&&w.splice(N,1)}b=new Set,E=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=E.getNeighborsList();L.forEach(function(C){if(y.indexOf(C)<0){var _=v.get(C),D=_-1;D==1&&k.push(C),v.set(C,D)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p}),(function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n}),(function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i}),(function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||T>=x[0].length)){for(var E=0;Eh},"_defaultCompareFunction")}]),l})();t.exports=s}),(function(t,e,r){"use strict";var n=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o((function(e,r){typeof cT=="object"&&typeof _B=="object"?_B.exports=r(AB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof cT=="object"?cT.coseBase=r(AB()):e.coseBase=r(e.layoutBase)}),"webpackUniversalModuleDefinition")(cT,function(t){return(function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)})([(function(e,r){e.exports=t}),(function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a}),(function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(w);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),S=this.nodesWithGravity.filter(function(A){return k.has(A)});this.graphManager.setAllNodesToApplyGravitation(S),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var w=new Set(this.getAllNodes()),k=this.nodesWithGravity.filter(function(L){return w.has(L)});this.graphManager.setAllNodesToApplyGravitation(k),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var S=!this.isTreeGrowing&&!this.isGrowthFinished,A=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(S,A),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var w=this.graphManager.getAllNodes(),k={},S=0;S1){var C;for(C=0;CA&&(A=Math.floor(N.y)),I=Math.floor(N.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-N.x/2,d.WORLD_CENTER_Y-N.y/2))},T.radialLayout=function(w,k,S){var A=Math.max(this.maxDiagonalInTree(w),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(k,null,0,359,0,A);var L=x.calculateBounds(w),I=new b;I.setDeviceOrgX(L.getMinX()),I.setDeviceOrgY(L.getMinY()),I.setWorldOrgX(S.x),I.setWorldOrgY(S.y);for(var N=0;N1;){var X=V[0];V.splice(0,1);var Q=P.indexOf(X);Q>=0&&P.splice(Q,1),G--,B--}k!=null?$=(P.indexOf(V[0])+1)%G:$=0;for(var H=Math.abs(A-S)/B,ie=$;F!=B;ie=++ie%G){var Y=P[ie].getOtherEnd(w);if(Y!=k){var le=(S+F*H)%360,ee=(le+H)%360;T.branchRadialLayout(Y,w,le,ee,L+I,I),F++}}},T.maxDiagonalInTree=function(w){for(var k=y.MIN_VALUE,S=0;Sk&&(k=L)}return k},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var w=this,k={};this.memberGroups={},this.idToDummyNode={};for(var S=[],A=this.graphManager.getAllNodes(),L=0;L"u"&&(k[C]=[]),k[C]=k[C].concat(I)}Object.keys(k).forEach(function(_){if(k[_].length>1){var D="DummyCompound_"+_;w.memberGroups[D]=k[_];var M=k[_][0].getParent(),R=new l(w.graphManager);R.id=D,R.paddingLeft=M.paddingLeft||0,R.paddingRight=M.paddingRight||0,R.paddingBottom=M.paddingBottom||0,R.paddingTop=M.paddingTop||0,w.idToDummyNode[D]=R;var P=w.getGraphManager().add(w.newGraph(),R),B=M.getChild();B.add(R);for(var F=0;F=0;w--){var k=this.compoundOrder[w],S=k.id,A=k.paddingLeft,L=k.paddingTop;this.adjustLocations(this.tiledMemberPack[S],k.rect.x,k.rect.y,A,L)}},T.prototype.repopulateZeroDegreeMembers=function(){var w=this,k=this.tiledZeroDegreePack;Object.keys(k).forEach(function(S){var A=w.idToDummyNode[S],L=A.paddingLeft,I=A.paddingTop;w.adjustLocations(k[S],A.rect.x,A.rect.y,L,I)})},T.prototype.getToBeTiled=function(w){var k=w.id;if(this.toBeTiled[k]!=null)return this.toBeTiled[k];var S=w.getChild();if(S==null)return this.toBeTiled[k]=!1,!1;for(var A=S.getNodes(),L=0;L0)return this.toBeTiled[k]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[k]=!1,!1}return this.toBeTiled[k]=!0,!0},T.prototype.getNodeDegree=function(w){for(var k=w.id,S=w.getEdges(),A=0,L=0;L_&&(_=M.rect.height)}S+=_+w.verticalPadding}},T.prototype.tileCompoundMembers=function(w,k){var S=this;this.tiledMemberPack=[],Object.keys(w).forEach(function(A){var L=k[A];S.tiledMemberPack[A]=S.tileNodes(w[A],L.paddingLeft+L.paddingRight),L.rect.width=S.tiledMemberPack[A].width,L.rect.height=S.tiledMemberPack[A].height})},T.prototype.tileNodes=function(w,k){var S=h.TILING_PADDING_VERTICAL,A=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:k,verticalPadding:S,horizontalPadding:A};w.sort(function(C,_){return C.rect.width*C.rect.height>_.rect.width*_.rect.height?-1:C.rect.width*C.rect.height<_.rect.width*_.rect.height?1:0});for(var I=0;I0&&(N+=w.horizontalPadding),w.rowWidth[S]=N,w.width0&&(C+=w.verticalPadding);var _=0;C>w.rowHeight[S]&&(_=w.rowHeight[S],w.rowHeight[S]=C,_=w.rowHeight[S]-_),w.height+=_,w.rows[S].push(k)},T.prototype.getShortestRowIndex=function(w){for(var k=-1,S=Number.MAX_VALUE,A=0;AS&&(k=A,S=w.rowWidth[A]);return k},T.prototype.canAddHorizontal=function(w,k,S){var A=this.getShortestRowIndex(w);if(A<0)return!0;var L=w.rowWidth[A];if(L+w.horizontalPadding+k<=w.width)return!0;var I=0;w.rowHeight[A]0&&(I=S+w.verticalPadding-w.rowHeight[A]);var N;w.width-L>=k+w.horizontalPadding?N=(w.height+I)/(L+k+w.horizontalPadding):N=(w.height+I)/w.width,I=S+w.verticalPadding;var C;return w.widthI&&k!=S){A.splice(-1,1),w.rows[S].push(L),w.rowWidth[k]=w.rowWidth[k]-I,w.rowWidth[S]=w.rowWidth[S]+I,w.width=w.rowWidth[instance.getLongestRowIndex(w)];for(var N=Number.MIN_VALUE,C=0;CN&&(N=A[C].height);k>0&&(N+=w.verticalPadding);var _=w.rowHeight[k]+w.rowHeight[S];w.rowHeight[k]=N,w.rowHeight[S]0)for(var B=L;B<=I;B++)P[0]+=this.grid[B][N-1].length+this.grid[B][N].length-1;if(I0)for(var B=N;B<=C;B++)P[3]+=this.grid[L-1][B].length+this.grid[L][B].length-1;for(var F=y.MAX_VALUE,G,$,V=0;V{"use strict";o((function(e,r){typeof uT=="object"&&typeof RB=="object"?RB.exports=r(DB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof uT=="object"?uT.cytoscapeCoseBilkent=r(DB()):e.cytoscapeCoseBilkent=r(e.coseBase)}),"webpackUniversalModuleDefinition")(uT,function(t){return(function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)})([(function(e,r){e.exports=t}),(function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var T in v)b[T]=v[T];for(var T in x)b[T]=x[T];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,T=this.idToLNode={},E=this.layout=new l,w=this;w.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var k=E.newGraphManager();this.gm=k;var S=this.options.eles.nodes(),A=this.options.eles.edges();this.root=k.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(S),E);for(var L=0;L0){var C;C=b.getGraphManager().add(b.newGraph(),S),this.processChildrenList(C,k,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y})])})});function zet(t,e){t.forEach(r=>{let n={id:r.id,labelText:r.label,height:r.height,width:r.width,padding:r.padding??0};Object.keys(r).forEach(i=>{["id","label","height","width","padding","x","y"].includes(i)||(n[i]=r[i])}),e.add({group:"nodes",data:n,position:{x:r.x??0,y:r.y??0}})})}function Get(t,e){t.forEach(r=>{let n={id:r.id,source:r.start,target:r.end};Object.keys(r).forEach(i=>{["id","start","end"].includes(i)||(n[i]=r[i])}),e.add({group:"edges",data:n})})}function Ege(t){return new Promise(e=>{let r=je("body").append("div").attr("id","cy").attr("style","display:none"),n=Il({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});r.remove(),zet(t.nodes,n),Get(t.edges,n),n.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}});let i={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};n.layout(i).run(),n.ready(a=>{K.info("Cytoscape ready",a),e(n)})})}function Sge(t){return t.nodes().map(e=>{let r=e.data(),n=e.position(),i={id:r.id,x:n.x,y:n.y};return Object.keys(r).forEach(a=>{a!=="id"&&(i[a]=r[a])}),i})}function Cge(t){return t.edges().map(e=>{let r=e.data(),n=e._private.rscratch,i={id:r.id,source:r.source,target:r.target,startX:n.startX,startY:n.startY,midX:n.midX,midY:n.midY,endX:n.endX,endY:n.endY};return Object.keys(r).forEach(a=>{["id","source","target"].includes(a)||(i[a]=r[a])}),i})}var kge,Age=O(()=>{"use strict";SB();kge=Ra(wge(),1);Ar();xt();Il.use(kge.default);o(zet,"addNodes");o(Get,"addEdges");o(Ege,"createCytoscapeInstance");o(Sge,"extractPositionedNodes");o(Cge,"extractPositionedEdges")});async function _ge(t,e){K.debug("Starting cose-bilkent layout algorithm");try{Vet(t);let r=await Ege(t),n=Sge(r),i=Cge(r);return K.debug(`Layout completed: ${n.length} nodes, ${i.length} edges`),{nodes:n,edges:i}}catch(r){throw K.error("Error in cose-bilkent layout algorithm:",r),r}}function Vet(t){if(!t)throw new Error("Layout data is required");if(!t.config)throw new Error("Configuration is required in layout data");if(!t.rootNode)throw new Error("Root node is required");if(!t.nodes||!Array.isArray(t.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(t.edges))throw new Error("Edges array is required in layout data");return!0}var Dge=O(()=>{"use strict";xt();Age();o(_ge,"executeCoseBilkentLayout");o(Vet,"validateLayoutData")});var Rge,Lge=O(()=>{"use strict";Dge();Rge=o(async(t,e,{insertCluster:r,insertEdge:n,insertEdgeLabel:i,insertMarkers:a,insertNode:s,log:l,positionEdgeLabel:u},{algorithm:h})=>{let f={},d={},p=e.select("g");a(p,t.markers,t.type,t.diagramId);let m=p.insert("g").attr("class","subgraphs"),g=p.insert("g").attr("class","edgePaths"),y=p.insert("g").attr("class","edgeLabels"),v=p.insert("g").attr("class","nodes");l.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(t.nodes.map(async T=>{if(T.isGroup){let E={...T};d[T.id]=E,f[T.id]=E,await r(m,T)}else{let E={...T};f[T.id]=E;let w=await s(v,T,{config:t.config,dir:t.direction||"TB"}),k=w.node().getBBox();E.width=k.width,E.height=k.height,E.domId=w,l.debug(`Node ${T.id} dimensions: ${k.width}x${k.height}`)}})),l.debug("Running cose-bilkent layout algorithm");let x={...t,nodes:t.nodes.map(T=>{let E=f[T.id];return{...T,width:E.width,height:E.height}})},b=await _ge(x,t.config);l.debug("Positioning nodes based on layout results"),b.nodes.forEach(T=>{let E=f[T.id];E?.domId&&(E.domId.attr("transform",`translate(${T.x}, ${T.y})`),E.x=T.x,E.y=T.y,l.debug(`Positioned node ${E.id} at center (${T.x}, ${T.y})`))}),b.edges.forEach(T=>{let E=t.edges.find(w=>w.id===T.id);E&&(E.points=[{x:T.startX,y:T.startY},{x:T.midX,y:T.midY},{x:T.endX,y:T.endY}])}),l.debug("Inserting and positioning edges"),await Promise.all(t.edges.map(async T=>{let E=await i(y,T),w=f[T.start??""],k=f[T.end??""];if(w&&k){let S=b.edges.find(A=>A.id===T.id);if(S){l.debug("APA01 positionedEdge",S);let A={...T},L=n(g,A,d,t.type,w,k,t.diagramId);u(A,L)}else{let A={...T,points:[{x:w.x||0,y:w.y||0},{x:k.x||0,y:k.y||0}]},L=n(g,A,d,t.type,w,k,t.diagramId);u(A,L)}}})),l.debug("Cose-bilkent rendering completed")},"render")});var Nge={};vr(Nge,{render:()=>qet});var qet,Mge=O(()=>{"use strict";Lge();qet=Rge});var hT,LB,Uet,Ol,Ru,Rd=O(()=>{"use strict";woe();xt();hT={},LB=o(t=>{for(let e of t)hT[e.name]=e},"registerLayoutLoaders"),Uet=o(()=>{LB([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(rde(),tde)),"loader")},{name:"cose-bilkent",loader:o(async()=>await Promise.resolve().then(()=>(Mge(),Nge)),"loader")}])},"registerDefaultLayoutLoaders");Uet();Ol=o(async(t,e)=>{if(!(t.layoutAlgorithm in hT))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=hT[t.layoutAlgorithm];return(await r.loader()).render(t,e,Toe,{algorithm:r.algorithm})},"render"),Ru=o((t="",{fallback:e="dagre"}={})=>{if(t in hT)return t;if(e in hT)return K.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var bo,Wet,Het,Ld=O(()=>{"use strict";Ti();xt();bo=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=Wet(t,e);Zr(t,a,i,n);let u=Het(s,l,i,a,e);t.attr("viewBox",u),K.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),Wet=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),Het=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var Yet,jet,Ige,Oge=O(()=>{"use strict";Ar();jt();xt();b0();Rd();Ld();ar();Yet=o(function(t,e){return e.db.getClasses()},"getClasses"),jet=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=ve(),l;i==="sandbox"&&(l=je("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;K.debug("Before getData: ");let h=n.db.getData();K.debug("Data: ",h);let f=Sl(e,i),d=n.db.getDirection();h.type=n.type,h.layoutAlgorithm=Ru(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&K.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,K.debug("REF1:",h),await Ol(h,f);let p=h.config.flowchart?.diagramPadding??8;Xt.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),bo(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=je(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),Ige={getClasses:Yet,draw:jet}});var NB,MB,Pge=O(()=>{"use strict";NB=(function(){var t=o(function(Pt,Tt,Vt,Qt){for(Vt=Vt||{},Qt=Pt.length;Qt--;Vt[Pt[Qt]]=Tt);return Vt},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,50],y=[1,49],v=[1,29],x=[1,30],b=[1,31],T=[1,32],E=[1,33],w=[1,45],k=[1,47],S=[1,43],A=[1,48],L=[1,44],I=[1,51],N=[1,46],C=[1,52],_=[1,53],D=[1,34],M=[1,35],R=[1,36],P=[1,37],B=[1,38],F=[1,58],G=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],$=[1,62],V=[1,61],X=[1,63],Q=[8,9,11,75,77,78],H=[1,79],ie=[1,92],Y=[1,97],le=[1,96],ee=[1,93],J=[1,89],te=[1,95],Z=[1,91],xe=[1,98],de=[1,94],Se=[1,99],Me=[1,90],ke=[8,9,10,11,40,75,77,78],we=[8,9,10,11,40,46,75,77,78],_e=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],$e=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],fe=[44,60,89,102,105,106,109,111,114,115,116],Ke=[1,122],Te=[1,123],Be=[1,125],Ue=[1,124],Ge=[44,60,62,74,89,102,105,106,109,111,114,115,116],Ne=[1,134],We=[1,148],j=[1,149],ae=[1,150],U=[1,151],ce=[1,136],z=[1,138],ne=[1,142],se=[1,143],be=[1,144],pe=[1,145],me=[1,146],Re=[1,147],ge=[1,152],Ie=[1,153],qe=[1,132],Pe=[1,133],Xe=[1,140],oe=[1,135],et=[1,139],he=[1,137],ot=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],Dt=[1,155],It=[1,157],wt=[8,9,11],Rt=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],it=[1,177],at=[1,173],Ct=[1,174],yt=[1,178],dt=[1,175],Ht=[1,176],cr=[77,116,119],Kt=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],kr=[10,106],ur=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],tr=[1,248],hr=[1,246],_n=[1,250],mt=[1,244],Le=[1,245],ct=[1,247],St=[1,249],Mr=[1,251],tn=[1,269],cn=[8,9,11,106],Cr=[8,9,10,11,60,84,105,106,109,110,111,112],Ki={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,direction_td:125,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr",125:"direction_td"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(Tt,Vt,Qt,gt,xn,ye,Mo){var Ee=ye.length-1;switch(xn){case 2:this.$=[];break;case 3:(!Array.isArray(ye[Ee])||ye[Ee].length>0)&&ye[Ee-1].push(ye[Ee]),this.$=ye[Ee-1];break;case 4:case 183:this.$=ye[Ee];break;case 11:gt.setDirection("TB"),this.$="TB";break;case 12:gt.setDirection(ye[Ee-1]),this.$=ye[Ee-1];break;case 27:this.$=ye[Ee-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=gt.addSubGraph(ye[Ee-6],ye[Ee-1],ye[Ee-4]);break;case 34:this.$=gt.addSubGraph(ye[Ee-3],ye[Ee-1],ye[Ee-3]);break;case 35:this.$=gt.addSubGraph(void 0,ye[Ee-1],void 0);break;case 37:this.$=ye[Ee].trim(),gt.setAccTitle(this.$);break;case 38:case 39:this.$=ye[Ee].trim(),gt.setAccDescription(this.$);break;case 43:this.$=ye[Ee-1]+ye[Ee];break;case 44:this.$=ye[Ee];break;case 45:gt.addVertex(ye[Ee-1][ye[Ee-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Ee]),gt.addLink(ye[Ee-3].stmt,ye[Ee-1],ye[Ee-2]),this.$={stmt:ye[Ee-1],nodes:ye[Ee-1].concat(ye[Ee-3].nodes)};break;case 46:gt.addLink(ye[Ee-2].stmt,ye[Ee],ye[Ee-1]),this.$={stmt:ye[Ee],nodes:ye[Ee].concat(ye[Ee-2].nodes)};break;case 47:gt.addLink(ye[Ee-3].stmt,ye[Ee-1],ye[Ee-2]),this.$={stmt:ye[Ee-1],nodes:ye[Ee-1].concat(ye[Ee-3].nodes)};break;case 48:this.$={stmt:ye[Ee-1],nodes:ye[Ee-1]};break;case 49:gt.addVertex(ye[Ee-1][ye[Ee-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Ee]),this.$={stmt:ye[Ee-1],nodes:ye[Ee-1],shapeData:ye[Ee]};break;case 50:this.$={stmt:ye[Ee],nodes:ye[Ee]};break;case 51:this.$=[ye[Ee]];break;case 52:gt.addVertex(ye[Ee-5][ye[Ee-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Ee-4]),this.$=ye[Ee-5].concat(ye[Ee]);break;case 53:this.$=ye[Ee-4].concat(ye[Ee]);break;case 54:this.$=ye[Ee];break;case 55:this.$=ye[Ee-2],gt.setClass(ye[Ee-2],ye[Ee]);break;case 56:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"square");break;case 57:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"doublecircle");break;case 58:this.$=ye[Ee-5],gt.addVertex(ye[Ee-5],ye[Ee-2],"circle");break;case 59:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"ellipse");break;case 60:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"stadium");break;case 61:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"subroutine");break;case 62:this.$=ye[Ee-7],gt.addVertex(ye[Ee-7],ye[Ee-1],"rect",void 0,void 0,void 0,Object.fromEntries([[ye[Ee-5],ye[Ee-3]]]));break;case 63:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"cylinder");break;case 64:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"round");break;case 65:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"diamond");break;case 66:this.$=ye[Ee-5],gt.addVertex(ye[Ee-5],ye[Ee-2],"hexagon");break;case 67:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"odd");break;case 68:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"trapezoid");break;case 69:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"inv_trapezoid");break;case 70:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"lean_right");break;case 71:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"lean_left");break;case 72:this.$=ye[Ee],gt.addVertex(ye[Ee]);break;case 73:ye[Ee-1].text=ye[Ee],this.$=ye[Ee-1];break;case 74:case 75:ye[Ee-2].text=ye[Ee-1],this.$=ye[Ee-2];break;case 76:this.$=ye[Ee];break;case 77:var _i=gt.destructLink(ye[Ee],ye[Ee-2]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length,text:ye[Ee-1]};break;case 78:var _i=gt.destructLink(ye[Ee],ye[Ee-2]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length,text:ye[Ee-1],id:ye[Ee-3]};break;case 79:this.$={text:ye[Ee],type:"text"};break;case 80:this.$={text:ye[Ee-1].text+""+ye[Ee],type:ye[Ee-1].type};break;case 81:this.$={text:ye[Ee],type:"string"};break;case 82:this.$={text:ye[Ee],type:"markdown"};break;case 83:var _i=gt.destructLink(ye[Ee]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length};break;case 84:var _i=gt.destructLink(ye[Ee]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length,id:ye[Ee-1]};break;case 85:this.$=ye[Ee-1];break;case 86:this.$={text:ye[Ee],type:"text"};break;case 87:this.$={text:ye[Ee-1].text+""+ye[Ee],type:ye[Ee-1].type};break;case 88:this.$={text:ye[Ee],type:"string"};break;case 89:case 104:this.$={text:ye[Ee],type:"markdown"};break;case 101:this.$={text:ye[Ee],type:"text"};break;case 102:this.$={text:ye[Ee-1].text+""+ye[Ee],type:ye[Ee-1].type};break;case 103:this.$={text:ye[Ee],type:"text"};break;case 105:this.$=ye[Ee-4],gt.addClass(ye[Ee-2],ye[Ee]);break;case 106:this.$=ye[Ee-4],gt.setClass(ye[Ee-2],ye[Ee]);break;case 107:case 115:this.$=ye[Ee-1],gt.setClickEvent(ye[Ee-1],ye[Ee]);break;case 108:case 116:this.$=ye[Ee-3],gt.setClickEvent(ye[Ee-3],ye[Ee-2]),gt.setTooltip(ye[Ee-3],ye[Ee]);break;case 109:this.$=ye[Ee-2],gt.setClickEvent(ye[Ee-2],ye[Ee-1],ye[Ee]);break;case 110:this.$=ye[Ee-4],gt.setClickEvent(ye[Ee-4],ye[Ee-3],ye[Ee-2]),gt.setTooltip(ye[Ee-4],ye[Ee]);break;case 111:this.$=ye[Ee-2],gt.setLink(ye[Ee-2],ye[Ee]);break;case 112:this.$=ye[Ee-4],gt.setLink(ye[Ee-4],ye[Ee-2]),gt.setTooltip(ye[Ee-4],ye[Ee]);break;case 113:this.$=ye[Ee-4],gt.setLink(ye[Ee-4],ye[Ee-2],ye[Ee]);break;case 114:this.$=ye[Ee-6],gt.setLink(ye[Ee-6],ye[Ee-4],ye[Ee]),gt.setTooltip(ye[Ee-6],ye[Ee-2]);break;case 117:this.$=ye[Ee-1],gt.setLink(ye[Ee-1],ye[Ee]);break;case 118:this.$=ye[Ee-3],gt.setLink(ye[Ee-3],ye[Ee-2]),gt.setTooltip(ye[Ee-3],ye[Ee]);break;case 119:this.$=ye[Ee-3],gt.setLink(ye[Ee-3],ye[Ee-2],ye[Ee]);break;case 120:this.$=ye[Ee-5],gt.setLink(ye[Ee-5],ye[Ee-4],ye[Ee]),gt.setTooltip(ye[Ee-5],ye[Ee-2]);break;case 121:this.$=ye[Ee-4],gt.addVertex(ye[Ee-2],void 0,void 0,ye[Ee]);break;case 122:this.$=ye[Ee-4],gt.updateLink([ye[Ee-2]],ye[Ee]);break;case 123:this.$=ye[Ee-4],gt.updateLink(ye[Ee-2],ye[Ee]);break;case 124:this.$=ye[Ee-8],gt.updateLinkInterpolate([ye[Ee-6]],ye[Ee-2]),gt.updateLink([ye[Ee-6]],ye[Ee]);break;case 125:this.$=ye[Ee-8],gt.updateLinkInterpolate(ye[Ee-6],ye[Ee-2]),gt.updateLink(ye[Ee-6],ye[Ee]);break;case 126:this.$=ye[Ee-6],gt.updateLinkInterpolate([ye[Ee-4]],ye[Ee]);break;case 127:this.$=ye[Ee-6],gt.updateLinkInterpolate(ye[Ee-4],ye[Ee]);break;case 128:case 130:this.$=[ye[Ee]];break;case 129:case 131:ye[Ee-2].push(ye[Ee]),this.$=ye[Ee-2];break;case 133:this.$=ye[Ee-1]+ye[Ee];break;case 181:this.$=ye[Ee];break;case 182:this.$=ye[Ee-1]+""+ye[Ee];break;case 184:this.$=ye[Ee-1]+""+ye[Ee];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break;case 189:this.$={stmt:"dir",value:"TD"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,55],9:[1,56],10:F,15:54,18:57},t(G,[2,3]),t(G,[2,4]),t(G,[2,5]),t(G,[2,6]),t(G,[2,7]),t(G,[2,8]),{8:$,9:V,11:X,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:$,9:V,11:X,21:68},{8:$,9:V,11:X,21:69},{8:$,9:V,11:X,21:70},{8:$,9:V,11:X,21:71},{8:$,9:V,11:X,21:72},{8:$,9:V,10:[1,73],11:X,21:74},t(G,[2,36]),{35:[1,75]},{37:[1,76]},t(G,[2,39]),t(Q,[2,50],{18:77,39:78,10:F,40:H}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:ie,44:Y,60:le,80:[1,87],89:ee,95:[1,84],97:[1,85],101:86,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me,120:88},t(G,[2,185]),t(G,[2,186]),t(G,[2,187]),t(G,[2,188]),t(G,[2,189]),t(ke,[2,51]),t(ke,[2,54],{46:[1,100]}),t(we,[2,72],{113:113,29:[1,101],44:g,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:y,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:w,102:k,105:S,106:A,109:L,111:I,114:N,115:C,116:_}),t(_e,[2,181]),t(_e,[2,142]),t(_e,[2,143]),t(_e,[2,144]),t(_e,[2,145]),t(_e,[2,146]),t(_e,[2,147]),t(_e,[2,148]),t(_e,[2,149]),t(_e,[2,150]),t(_e,[2,151]),t(_e,[2,152]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,114]},t($e,[2,26],{18:115,10:F}),t(G,[2,27]),{42:116,43:39,44:g,45:40,47:41,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(G,[2,40]),t(G,[2,41]),t(G,[2,42]),t(fe,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:Ke,81:Te,116:Be,119:Ue},{75:[1,126],77:[1,127]},t(Ge,[2,83]),t(G,[2,28]),t(G,[2,29]),t(G,[2,30]),t(G,[2,31]),t(G,[2,32]),{10:Ne,12:We,14:j,27:ae,28:128,32:U,44:ce,60:z,75:ne,80:[1,130],81:[1,131],83:141,84:se,85:be,86:pe,87:me,88:Re,89:ge,90:Ie,91:129,105:qe,109:Pe,111:Xe,114:oe,115:et,116:he},t(ot,a,{5:154}),t(G,[2,37]),t(G,[2,38]),t(Q,[2,48],{44:Dt}),t(Q,[2,49],{18:156,10:F,40:It}),t(ke,[2,44]),{44:g,47:158,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{102:[1,159],103:160,105:[1,161]},{44:g,47:162,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{44:g,47:163,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(wt,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},t(wt,[2,115],{120:168,10:[1,167],14:ie,44:Y,60:le,89:ee,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me}),t(wt,[2,117],{10:[1,169]}),t(Rt,[2,183]),t(Rt,[2,170]),t(Rt,[2,171]),t(Rt,[2,172]),t(Rt,[2,173]),t(Rt,[2,174]),t(Rt,[2,175]),t(Rt,[2,176]),t(Rt,[2,177]),t(Rt,[2,178]),t(Rt,[2,179]),t(Rt,[2,180]),{44:g,47:170,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{30:171,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:179,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:181,50:[1,180],67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:182,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:183,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:184,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{109:[1,185]},{30:186,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:187,65:[1,188],67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:189,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:190,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:191,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},t(_e,[2,182]),t(i,[2,20]),t($e,[2,25]),t(Q,[2,46],{39:192,18:193,10:F,40:H}),t(fe,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{77:[1,197],79:198,116:Be,119:Ue},t(cr,[2,79]),t(cr,[2,81]),t(cr,[2,82]),t(cr,[2,168]),t(cr,[2,169]),{76:199,79:121,80:Ke,81:Te,116:Be,119:Ue},t(Ge,[2,84]),{8:$,9:V,10:Ne,11:X,12:We,14:j,21:201,27:ae,29:[1,200],32:U,44:ce,60:z,75:ne,83:141,84:se,85:be,86:pe,87:me,88:Re,89:ge,90:Ie,91:202,105:qe,109:Pe,111:Xe,114:oe,115:et,116:he},t(Kt,[2,101]),t(Kt,[2,103]),t(Kt,[2,104]),t(Kt,[2,157]),t(Kt,[2,158]),t(Kt,[2,159]),t(Kt,[2,160]),t(Kt,[2,161]),t(Kt,[2,162]),t(Kt,[2,163]),t(Kt,[2,164]),t(Kt,[2,165]),t(Kt,[2,166]),t(Kt,[2,167]),t(Kt,[2,90]),t(Kt,[2,91]),t(Kt,[2,92]),t(Kt,[2,93]),t(Kt,[2,94]),t(Kt,[2,95]),t(Kt,[2,96]),t(Kt,[2,97]),t(Kt,[2,98]),t(Kt,[2,99]),t(Kt,[2,100]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,203],33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},{10:F,18:204},{44:[1,205]},t(ke,[2,43]),{10:[1,206],44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:113,114:N,115:C,116:_},{10:[1,207]},{10:[1,208],106:[1,209]},t(kr,[2,128]),{10:[1,210],44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:113,114:N,115:C,116:_},{10:[1,211],44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:113,114:N,115:C,116:_},{80:[1,212]},t(wt,[2,109],{10:[1,213]}),t(wt,[2,111],{10:[1,214]}),{80:[1,215]},t(Rt,[2,184]),{80:[1,216],98:[1,217]},t(ke,[2,55],{113:113,44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,114:N,115:C,116:_}),{31:[1,218],67:it,82:219,116:yt,117:dt,118:Ht},t(ur,[2,86]),t(ur,[2,88]),t(ur,[2,89]),t(ur,[2,153]),t(ur,[2,154]),t(ur,[2,155]),t(ur,[2,156]),{49:[1,220],67:it,82:219,116:yt,117:dt,118:Ht},{30:221,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{51:[1,222],67:it,82:219,116:yt,117:dt,118:Ht},{53:[1,223],67:it,82:219,116:yt,117:dt,118:Ht},{55:[1,224],67:it,82:219,116:yt,117:dt,118:Ht},{57:[1,225],67:it,82:219,116:yt,117:dt,118:Ht},{60:[1,226]},{64:[1,227],67:it,82:219,116:yt,117:dt,118:Ht},{66:[1,228],67:it,82:219,116:yt,117:dt,118:Ht},{30:229,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{31:[1,230],67:it,82:219,116:yt,117:dt,118:Ht},{67:it,69:[1,231],71:[1,232],82:219,116:yt,117:dt,118:Ht},{67:it,69:[1,234],71:[1,233],82:219,116:yt,117:dt,118:Ht},t(Q,[2,45],{18:156,10:F,40:It}),t(Q,[2,47],{44:Dt}),t(fe,[2,75]),t(fe,[2,74]),{62:[1,235],67:it,82:219,116:yt,117:dt,118:Ht},t(fe,[2,77]),t(cr,[2,80]),{77:[1,236],79:198,116:Be,119:Ue},{30:237,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},t(ot,a,{5:238}),t(Kt,[2,102]),t(G,[2,35]),{43:239,44:g,45:40,47:41,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{10:F,18:240},{10:tr,60:hr,84:_n,92:241,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{10:tr,60:hr,84:_n,92:252,104:[1,253],105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{10:tr,60:hr,84:_n,92:254,104:[1,255],105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{105:[1,256]},{10:tr,60:hr,84:_n,92:257,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{44:g,47:258,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(wt,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},t(wt,[2,116]),t(wt,[2,118],{10:[1,262]}),t(wt,[2,119]),t(we,[2,56]),t(ur,[2,87]),t(we,[2,57]),{51:[1,263],67:it,82:219,116:yt,117:dt,118:Ht},t(we,[2,64]),t(we,[2,59]),t(we,[2,60]),t(we,[2,61]),{109:[1,264]},t(we,[2,63]),t(we,[2,65]),{66:[1,265],67:it,82:219,116:yt,117:dt,118:Ht},t(we,[2,67]),t(we,[2,68]),t(we,[2,70]),t(we,[2,69]),t(we,[2,71]),t([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),t(fe,[2,78]),{31:[1,266],67:it,82:219,116:yt,117:dt,118:Ht},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,267],33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},t(ke,[2,53]),{43:268,44:g,45:40,47:41,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(wt,[2,121],{106:tn}),t(cn,[2,130],{108:270,10:tr,60:hr,84:_n,105:mt,109:Le,110:ct,111:St,112:Mr}),t(Cr,[2,132]),t(Cr,[2,134]),t(Cr,[2,135]),t(Cr,[2,136]),t(Cr,[2,137]),t(Cr,[2,138]),t(Cr,[2,139]),t(Cr,[2,140]),t(Cr,[2,141]),t(wt,[2,122],{106:tn}),{10:[1,271]},t(wt,[2,123],{106:tn}),{10:[1,272]},t(kr,[2,129]),t(wt,[2,105],{106:tn}),t(wt,[2,106],{113:113,44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,114:N,115:C,116:_}),t(wt,[2,110]),t(wt,[2,112],{10:[1,273]}),t(wt,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:$,9:V,11:X,21:278},t(G,[2,34]),t(ke,[2,52]),{10:tr,60:hr,84:_n,105:mt,107:279,108:243,109:Le,110:ct,111:St,112:Mr},t(Cr,[2,133]),{14:ie,44:Y,60:le,89:ee,101:280,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me,120:88},{14:ie,44:Y,60:le,89:ee,101:281,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me,120:88},{98:[1,282]},t(wt,[2,120]),t(we,[2,58]),{30:283,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},t(we,[2,66]),t(ot,a,{5:284}),t(cn,[2,131],{108:270,10:tr,60:hr,84:_n,105:mt,109:Le,110:ct,111:St,112:Mr}),t(wt,[2,126],{120:168,10:[1,285],14:ie,44:Y,60:le,89:ee,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me}),t(wt,[2,127],{120:168,10:[1,286],14:ie,44:Y,60:le,89:ee,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me}),t(wt,[2,114]),{31:[1,287],67:it,82:219,116:yt,117:dt,118:Ht},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,288],33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},{10:tr,60:hr,84:_n,92:289,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{10:tr,60:hr,84:_n,92:290,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},t(we,[2,62]),t(G,[2,33]),t(wt,[2,124],{106:tn}),t(wt,[2,125],{106:tn})],defaultActions:{},parseError:o(function(Tt,Vt){if(Vt.recoverable)this.trace(Tt);else{var Qt=new Error(Tt);throw Qt.hash=Vt,Qt}},"parseError"),parse:o(function(Tt){var Vt=this,Qt=[0],gt=[],xn=[null],ye=[],Mo=this.table,Ee="",_i=0,$_=0,B3=0,MAe=2,lH=1,IAe=ye.slice.call(arguments,1),fa=Object.create(this.lexer),Sp={yy:{}};for(var z_ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z_)&&(Sp.yy[z_]=this.yy[z_]);fa.setInput(Tt,Sp.yy),Sp.yy.lexer=fa,Sp.yy.parser=this,typeof fa.yylloc>"u"&&(fa.yylloc={});var G_=fa.yylloc;ye.push(G_);var OAe=fa.options&&fa.options.ranges;typeof Sp.yy.parseError=="function"?this.parseError=Sp.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Amt(Io){Qt.length=Qt.length-2*Io,xn.length=xn.length-Io,ye.length=ye.length-Io}o(Amt,"popStack");function PAe(){var Io;return Io=gt.pop()||fa.lex()||lH,typeof Io!="number"&&(Io instanceof Array&&(gt=Io,Io=gt.pop()),Io=Vt.symbols_[Io]||Io),Io}o(PAe,"lex");for(var xs,V_,Cp,ll,_mt,q_,ig={},F3,Ju,cH,$3;;){if(Cp=Qt[Qt.length-1],this.defaultActions[Cp]?ll=this.defaultActions[Cp]:((xs===null||typeof xs>"u")&&(xs=PAe()),ll=Mo[Cp]&&Mo[Cp][xs]),typeof ll>"u"||!ll.length||!ll[0]){var U_="";$3=[];for(F3 in Mo[Cp])this.terminals_[F3]&&F3>MAe&&$3.push("'"+this.terminals_[F3]+"'");fa.showPosition?U_="Parse error on line "+(_i+1)+`: +`+fa.showPosition()+` +Expecting `+$3.join(", ")+", got '"+(this.terminals_[xs]||xs)+"'":U_="Parse error on line "+(_i+1)+": Unexpected "+(xs==lH?"end of input":"'"+(this.terminals_[xs]||xs)+"'"),this.parseError(U_,{text:fa.match,token:this.terminals_[xs]||xs,line:fa.yylineno,loc:G_,expected:$3})}if(ll[0]instanceof Array&&ll.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Cp+", token: "+xs);switch(ll[0]){case 1:Qt.push(xs),xn.push(fa.yytext),ye.push(fa.yylloc),Qt.push(ll[1]),xs=null,V_?(xs=V_,V_=null):($_=fa.yyleng,Ee=fa.yytext,_i=fa.yylineno,G_=fa.yylloc,B3>0&&B3--);break;case 2:if(Ju=this.productions_[ll[1]][1],ig.$=xn[xn.length-Ju],ig._$={first_line:ye[ye.length-(Ju||1)].first_line,last_line:ye[ye.length-1].last_line,first_column:ye[ye.length-(Ju||1)].first_column,last_column:ye[ye.length-1].last_column},OAe&&(ig._$.range=[ye[ye.length-(Ju||1)].range[0],ye[ye.length-1].range[1]]),q_=this.performAction.apply(ig,[Ee,$_,_i,Sp.yy,ll[1],xn,ye].concat(IAe)),typeof q_<"u")return q_;Ju&&(Qt=Qt.slice(0,-1*Ju*2),xn=xn.slice(0,-1*Ju),ye=ye.slice(0,-1*Ju)),Qt.push(this.productions_[ll[1]][0]),xn.push(ig.$),ye.push(ig._$),cH=Mo[Qt[Qt.length-2]][Qt[Qt.length-1]],Qt.push(cH);break;case 3:return!0}}return!0},"parse")},Da=(function(){var Pt={EOF:1,parseError:o(function(Vt,Qt){if(this.yy.parser)this.yy.parser.parseError(Vt,Qt);else throw new Error(Vt)},"parseError"),setInput:o(function(Tt,Vt){return this.yy=Vt||this.yy||{},this._input=Tt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Tt=this._input[0];this.yytext+=Tt,this.yyleng++,this.offset++,this.match+=Tt,this.matched+=Tt;var Vt=Tt.match(/(?:\r\n?|\n).*/g);return Vt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Tt},"input"),unput:o(function(Tt){var Vt=Tt.length,Qt=Tt.split(/(?:\r\n?|\n)/g);this._input=Tt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Vt),this.offset-=Vt;var gt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Qt.length-1&&(this.yylineno-=Qt.length-1);var xn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Qt?(Qt.length===gt.length?this.yylloc.first_column:0)+gt[gt.length-Qt.length].length-Qt[0].length:this.yylloc.first_column-Vt},this.options.ranges&&(this.yylloc.range=[xn[0],xn[0]+this.yyleng-Vt]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Tt){this.unput(this.match.slice(Tt))},"less"),pastInput:o(function(){var Tt=this.matched.substr(0,this.matched.length-this.match.length);return(Tt.length>20?"...":"")+Tt.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Tt=this.match;return Tt.length<20&&(Tt+=this._input.substr(0,20-Tt.length)),(Tt.substr(0,20)+(Tt.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Tt=this.pastInput(),Vt=new Array(Tt.length+1).join("-");return Tt+this.upcomingInput()+` +`+Vt+"^"},"showPosition"),test_match:o(function(Tt,Vt){var Qt,gt,xn;if(this.options.backtrack_lexer&&(xn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(xn.yylloc.range=this.yylloc.range.slice(0))),gt=Tt[0].match(/(?:\r\n?|\n).*/g),gt&&(this.yylineno+=gt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:gt?gt[gt.length-1].length-gt[gt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Tt[0].length},this.yytext+=Tt[0],this.match+=Tt[0],this.matches=Tt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Tt[0].length),this.matched+=Tt[0],Qt=this.performAction.call(this,this.yy,this,Vt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Qt)return Qt;if(this._backtrack){for(var ye in xn)this[ye]=xn[ye];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Tt,Vt,Qt,gt;this._more||(this.yytext="",this.match="");for(var xn=this._currentRules(),ye=0;yeVt[0].length)){if(Vt=Qt,gt=ye,this.options.backtrack_lexer){if(Tt=this.test_match(Qt,xn[ye]),Tt!==!1)return Tt;if(this._backtrack){Vt=!1;continue}else return!1}else if(!this.options.flex)break}return Vt?(Tt=this.test_match(Vt,xn[gt]),Tt!==!1?Tt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Vt=this.next();return Vt||this.lex()},"lex"),begin:o(function(Vt){this.conditionStack.push(Vt)},"begin"),popState:o(function(){var Vt=this.conditionStack.length-1;return Vt>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Vt){return Vt=this.conditionStack.length-1-Math.abs(Vt||0),Vt>=0?this.conditionStack[Vt]:"INITIAL"},"topState"),pushState:o(function(Vt){this.begin(Vt)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Vt,Qt,gt,xn){var ye=xn;switch(gt){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),Qt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let Mo=/\n\s*/g;return Qt.yytext=Qt.yytext.replace(Mo,"
    "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 17:this.popState();break;case 18:return 96;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;case 35:return Vt.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return Vt.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return Vt.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 98;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 121;case 56:return 122;case 57:return 123;case 58:return 124;case 59:return 125;case 60:return 78;case 61:return 105;case 62:return 111;case 63:return 46;case 64:return 60;case 65:return 44;case 66:return 8;case 67:return 106;case 68:return 115;case 69:return this.popState(),77;break;case 70:return this.pushState("edgeText"),75;break;case 71:return 119;case 72:return this.popState(),77;break;case 73:return this.pushState("thickEdgeText"),75;break;case 74:return 119;case 75:return this.popState(),77;break;case 76:return this.pushState("dottedEdgeText"),75;break;case 77:return 119;case 78:return 77;case 79:return this.popState(),53;break;case 80:return"TEXT";case 81:return this.pushState("ellipseText"),52;break;case 82:return this.popState(),55;break;case 83:return this.pushState("text"),54;break;case 84:return this.popState(),57;break;case 85:return this.pushState("text"),56;break;case 86:return 58;case 87:return this.pushState("text"),67;break;case 88:return this.popState(),64;break;case 89:return this.pushState("text"),63;break;case 90:return this.popState(),49;break;case 91:return this.pushState("text"),48;break;case 92:return this.popState(),69;break;case 93:return this.popState(),71;break;case 94:return 117;case 95:return this.pushState("trapText"),68;break;case 96:return this.pushState("trapText"),70;break;case 97:return 118;case 98:return 67;case 99:return 90;case 100:return"SEP";case 101:return 89;case 102:return 115;case 103:return 111;case 104:return 44;case 105:return 109;case 106:return 114;case 107:return 116;case 108:return this.popState(),62;break;case 109:return this.pushState("text"),62;break;case 110:return this.popState(),51;break;case 111:return this.pushState("text"),50;break;case 112:return this.popState(),31;break;case 113:return this.pushState("text"),29;break;case 114:return this.popState(),66;break;case 115:return this.pushState("text"),65;break;case 116:return"TEXT";case 117:return"QUOTE";case 118:return 9;case 119:return 10;case 120:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:.*direction\s+TD[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},shapeData:{rules:[8,11,12,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},callbackargs:{rules:[17,18,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},callbackname:{rules:[14,15,16,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},href:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},click:{rules:[21,24,33,34,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},dottedEdgeText:{rules:[21,24,75,77,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},thickEdgeText:{rules:[21,24,72,74,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},edgeText:{rules:[21,24,69,71,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},trapText:{rules:[21,24,78,81,83,85,89,91,92,93,94,95,96,109,111,113,115],inclusive:!1},ellipseText:{rules:[21,24,78,79,80,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},text:{rules:[21,24,78,81,82,83,84,85,88,89,90,91,95,96,108,109,110,111,112,113,114,115,116],inclusive:!1},vertex:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_descr:{rules:[3,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_title:{rules:[1,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},md_string:{rules:[19,20,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},string:{rules:[21,22,23,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,75,76,78,81,83,85,86,87,89,91,95,96,97,98,99,100,101,102,103,104,105,106,107,109,111,113,115,117,118,119,120],inclusive:!0}}};return Pt})();Ki.lexer=Da;function Dn(){this.yy={}}return o(Dn,"Parser"),Dn.prototype=Ki,Ki.Parser=Dn,new Dn})();NB.parser=NB;MB=NB});var Bge,Fge,$ge=O(()=>{"use strict";Pge();Bge=Object.assign({},MB);Bge.parse=t=>{let e=t.replace(/}\s*\n/g,`} +`);return MB.parse(e)};Fge=Bge});var Lu,ly=O(()=>{"use strict";Lu=o(()=>` + /* Font Awesome icon styling - consolidated */ + .label-icon { + display: inline-block; + height: 1em; + overflow: visible; + vertical-align: -0.125em; + } + + .node .label-icon path { + fill: currentColor; + stroke: revert; + stroke-width: revert; + } +`,"getIconStyles")});var Xet,Ket,zge,Gge=O(()=>{"use strict";Ys();ly();Xet=o((t,e)=>{let r=_p,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return bs(n,i,a,e)},"fade"),Ket=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${t.lineColor} !important; + stroke-width: 0; + stroke: ${t.lineColor}; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${Xet(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + padding: 2px; + } + .label rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + ${Lu()} +`,"getStyles"),zge=Ket});var kC={};vr(kC,{diagram:()=>Qet});var Qet,EC=O(()=>{"use strict";jt();loe();Oge();$ge();Gge();Qet={parser:Fge,get db(){return new sE},renderer:Ige,styles:zge,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&z2({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,z2({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}})},"init")}});var IB,Hge,Yge=O(()=>{"use strict";IB=(function(){var t=o(function(Se,Me,ke,we){for(ke=ke||{},we=Se.length;we--;ke[Se[we]]=Me);return ke},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,23],l=[1,24],u=[1,25],h=[1,26],f=[1,27],d=[1,19],p=[1,28],m=[1,29],g=[1,20],y=[1,18],v=[1,21],x=[1,22],b=[1,36],T=[1,37],E=[1,38],w=[1,39],k=[1,40],S=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],A=[1,45],L=[1,46],I=[1,55],N=[40,48,50,51,52,70,71],C=[1,66],_=[1,64],D=[1,61],M=[1,65],R=[1,67],P=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],B=[65,66,67,68,69],F=[1,84],G=[1,83],$=[1,81],V=[1,82],X=[6,10,42,47],Q=[6,10,13,41,42,47,48,49],H=[1,92],ie=[1,91],Y=[1,90],le=[19,58],ee=[1,101],J=[1,100],te=[19,58,60,62],Z={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:o(function(Me,ke,we,_e,$e,fe,Ke){var Te=fe.length-1;switch($e){case 1:break;case 2:this.$=[];break;case 3:fe[Te-1].push(fe[Te]),this.$=fe[Te-1];break;case 4:case 5:this.$=fe[Te];break;case 6:case 7:this.$=[];break;case 8:_e.addEntity(fe[Te-4]),_e.addEntity(fe[Te-2]),_e.addRelationship(fe[Te-4],fe[Te],fe[Te-2],fe[Te-3]);break;case 9:_e.addEntity(fe[Te-8]),_e.addEntity(fe[Te-4]),_e.addRelationship(fe[Te-8],fe[Te],fe[Te-4],fe[Te-5]),_e.setClass([fe[Te-8]],fe[Te-6]),_e.setClass([fe[Te-4]],fe[Te-2]);break;case 10:_e.addEntity(fe[Te-6]),_e.addEntity(fe[Te-2]),_e.addRelationship(fe[Te-6],fe[Te],fe[Te-2],fe[Te-3]),_e.setClass([fe[Te-6]],fe[Te-4]);break;case 11:_e.addEntity(fe[Te-6]),_e.addEntity(fe[Te-4]),_e.addRelationship(fe[Te-6],fe[Te],fe[Te-4],fe[Te-5]),_e.setClass([fe[Te-4]],fe[Te-2]);break;case 12:_e.addEntity(fe[Te-3]),_e.addAttributes(fe[Te-3],fe[Te-1]);break;case 13:_e.addEntity(fe[Te-5]),_e.addAttributes(fe[Te-5],fe[Te-1]),_e.setClass([fe[Te-5]],fe[Te-3]);break;case 14:_e.addEntity(fe[Te-2]);break;case 15:_e.addEntity(fe[Te-4]),_e.setClass([fe[Te-4]],fe[Te-2]);break;case 16:_e.addEntity(fe[Te]);break;case 17:_e.addEntity(fe[Te-2]),_e.setClass([fe[Te-2]],fe[Te]);break;case 18:_e.addEntity(fe[Te-6],fe[Te-4]),_e.addAttributes(fe[Te-6],fe[Te-1]);break;case 19:_e.addEntity(fe[Te-8],fe[Te-6]),_e.addAttributes(fe[Te-8],fe[Te-1]),_e.setClass([fe[Te-8]],fe[Te-3]);break;case 20:_e.addEntity(fe[Te-5],fe[Te-3]);break;case 21:_e.addEntity(fe[Te-7],fe[Te-5]),_e.setClass([fe[Te-7]],fe[Te-2]);break;case 22:_e.addEntity(fe[Te-3],fe[Te-1]);break;case 23:_e.addEntity(fe[Te-5],fe[Te-3]),_e.setClass([fe[Te-5]],fe[Te]);break;case 24:case 25:this.$=fe[Te].trim(),_e.setAccTitle(this.$);break;case 26:case 27:this.$=fe[Te].trim(),_e.setAccDescription(this.$);break;case 32:_e.setDirection("TB");break;case 33:_e.setDirection("BT");break;case 34:_e.setDirection("RL");break;case 35:_e.setDirection("LR");break;case 36:this.$=fe[Te-3],_e.addClass(fe[Te-2],fe[Te-1]);break;case 37:case 38:case 59:case 67:this.$=[fe[Te]];break;case 39:case 40:this.$=fe[Te-2].concat([fe[Te]]);break;case 41:this.$=fe[Te-2],_e.setClass(fe[Te-1],fe[Te]);break;case 42:this.$=fe[Te-3],_e.addCssStyles(fe[Te-2],fe[Te-1]);break;case 43:this.$=[fe[Te]];break;case 44:fe[Te-2].push(fe[Te]),this.$=fe[Te-2];break;case 46:this.$=fe[Te-1]+fe[Te];break;case 54:case 79:case 80:this.$=fe[Te].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=fe[Te];break;case 60:fe[Te].push(fe[Te-1]),this.$=fe[Te];break;case 61:this.$={type:fe[Te-1],name:fe[Te]};break;case 62:this.$={type:fe[Te-2],name:fe[Te-1],keys:fe[Te]};break;case 63:this.$={type:fe[Te-2],name:fe[Te-1],comment:fe[Te]};break;case 64:this.$={type:fe[Te-3],name:fe[Te-2],keys:fe[Te-1],comment:fe[Te]};break;case 65:case 66:case 69:this.$=fe[Te];break;case 68:fe[Te-2].push(fe[Te]),this.$=fe[Te-2];break;case 70:this.$=fe[Te].replace(/"/g,"");break;case 71:this.$={cardA:fe[Te],relType:fe[Te-1],cardB:fe[Te-2]};break;case 72:this.$=_e.Cardinality.ZERO_OR_ONE;break;case 73:this.$=_e.Cardinality.ZERO_OR_MORE;break;case 74:this.$=_e.Cardinality.ONE_OR_MORE;break;case 75:this.$=_e.Cardinality.ONLY_ONE;break;case 76:this.$=_e.Cardinality.MD_PARENT;break;case 77:this.$=_e.Identification.NON_IDENTIFYING;break;case 78:this.$=_e.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,48:g,50:y,51:v,52:x},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:30,11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,48:g,50:y,51:v,52:x},t(e,[2,5]),t(e,[2,6]),t(e,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:b,66:T,67:E,68:w,69:k}),{23:[1,41]},{25:[1,42]},{27:[1,43]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),t(e,[2,30]),t(e,[2,31]),t(S,[2,54]),t(S,[2,55]),t(S,[2,56]),t(S,[2,57]),t(S,[2,58]),t(e,[2,32]),t(e,[2,33]),t(e,[2,34]),t(e,[2,35]),{16:44,40:A,41:L},{16:47,40:A,41:L},{16:48,40:A,41:L},t(e,[2,4]),{11:49,40:d,48:g,50:y,51:v,52:x},{16:50,40:A,41:L},{18:51,19:[1,52],53:53,54:54,58:I},{11:56,40:d,48:g,50:y,51:v,52:x},{64:57,70:[1,58],71:[1,59]},t(N,[2,72]),t(N,[2,73]),t(N,[2,74]),t(N,[2,75]),t(N,[2,76]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),{13:C,38:60,41:_,42:D,45:62,46:63,48:M,49:R},t(P,[2,37]),t(P,[2,38]),{16:68,40:A,41:L,42:D},{13:C,38:69,41:_,42:D,45:62,46:63,48:M,49:R},{13:[1,70],15:[1,71]},t(e,[2,17],{63:35,12:72,17:[1,73],42:D,65:b,66:T,67:E,68:w,69:k}),{19:[1,74]},t(e,[2,14]),{18:75,19:[2,59],53:53,54:54,58:I},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:b,66:T,67:E,68:w,69:k},t(B,[2,77]),t(B,[2,78]),{6:F,10:G,39:80,42:$,47:V},{40:[1,85],41:[1,86]},t(X,[2,43],{46:87,13:C,41:_,48:M,49:R}),t(Q,[2,45]),t(Q,[2,50]),t(Q,[2,51]),t(Q,[2,52]),t(Q,[2,53]),t(e,[2,41],{42:D}),{6:F,10:G,39:88,42:$,47:V},{14:89,40:H,50:ie,72:Y},{16:93,40:A,41:L},{11:94,40:d,48:g,50:y,51:v,52:x},{18:95,19:[1,96],53:53,54:54,58:I},t(e,[2,12]),{19:[2,60]},t(le,[2,61],{56:97,57:98,59:99,61:ee,62:J}),t([19,58,61,62],[2,66]),t(e,[2,22],{15:[1,103],17:[1,102]}),t([40,48,50,51,52],[2,71]),t(e,[2,36]),{13:C,41:_,45:104,46:63,48:M,49:R},t(e,[2,47]),t(e,[2,48]),t(e,[2,49]),t(P,[2,39]),t(P,[2,40]),t(Q,[2,46]),t(e,[2,42]),t(e,[2,8]),t(e,[2,79]),t(e,[2,80]),t(e,[2,81]),{13:[1,105],42:D},{13:[1,107],15:[1,106]},{19:[1,108]},t(e,[2,15]),t(le,[2,62],{57:109,60:[1,110],62:J}),t(le,[2,63]),t(te,[2,67]),t(le,[2,70]),t(te,[2,69]),{18:111,19:[1,112],53:53,54:54,58:I},{16:113,40:A,41:L},t(X,[2,44],{46:87,13:C,41:_,48:M,49:R}),{14:114,40:H,50:ie,72:Y},{16:115,40:A,41:L},{14:116,40:H,50:ie,72:Y},t(e,[2,13]),t(le,[2,64]),{59:117,61:ee},{19:[1,118]},t(e,[2,20]),t(e,[2,23],{17:[1,119],42:D}),t(e,[2,11]),{13:[1,120],42:D},t(e,[2,10]),t(te,[2,68]),t(e,[2,18]),{18:121,19:[1,122],53:53,54:54,58:I},{14:123,40:H,50:ie,72:Y},{19:[1,124]},t(e,[2,21]),t(e,[2,9]),t(e,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:o(function(Me,ke){if(ke.recoverable)this.trace(Me);else{var we=new Error(Me);throw we.hash=ke,we}},"parseError"),parse:o(function(Me){var ke=this,we=[0],_e=[],$e=[null],fe=[],Ke=this.table,Te="",Be=0,Ue=0,Ge=0,Ne=2,We=1,j=fe.slice.call(arguments,1),ae=Object.create(this.lexer),U={yy:{}};for(var ce in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ce)&&(U.yy[ce]=this.yy[ce]);ae.setInput(Me,U.yy),U.yy.lexer=ae,U.yy.parser=this,typeof ae.yylloc>"u"&&(ae.yylloc={});var z=ae.yylloc;fe.push(z);var ne=ae.options&&ae.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function se(Dt){we.length=we.length-2*Dt,$e.length=$e.length-Dt,fe.length=fe.length-Dt}o(se,"popStack");function be(){var Dt;return Dt=_e.pop()||ae.lex()||We,typeof Dt!="number"&&(Dt instanceof Array&&(_e=Dt,Dt=_e.pop()),Dt=ke.symbols_[Dt]||Dt),Dt}o(be,"lex");for(var pe,me,Re,ge,Ie,qe,Pe={},Xe,oe,et,he;;){if(Re=we[we.length-1],this.defaultActions[Re]?ge=this.defaultActions[Re]:((pe===null||typeof pe>"u")&&(pe=be()),ge=Ke[Re]&&Ke[Re][pe]),typeof ge>"u"||!ge.length||!ge[0]){var ot="";he=[];for(Xe in Ke[Re])this.terminals_[Xe]&&Xe>Ne&&he.push("'"+this.terminals_[Xe]+"'");ae.showPosition?ot="Parse error on line "+(Be+1)+`: +`+ae.showPosition()+` +Expecting `+he.join(", ")+", got '"+(this.terminals_[pe]||pe)+"'":ot="Parse error on line "+(Be+1)+": Unexpected "+(pe==We?"end of input":"'"+(this.terminals_[pe]||pe)+"'"),this.parseError(ot,{text:ae.match,token:this.terminals_[pe]||pe,line:ae.yylineno,loc:z,expected:he})}if(ge[0]instanceof Array&&ge.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Re+", token: "+pe);switch(ge[0]){case 1:we.push(pe),$e.push(ae.yytext),fe.push(ae.yylloc),we.push(ge[1]),pe=null,me?(pe=me,me=null):(Ue=ae.yyleng,Te=ae.yytext,Be=ae.yylineno,z=ae.yylloc,Ge>0&&Ge--);break;case 2:if(oe=this.productions_[ge[1]][1],Pe.$=$e[$e.length-oe],Pe._$={first_line:fe[fe.length-(oe||1)].first_line,last_line:fe[fe.length-1].last_line,first_column:fe[fe.length-(oe||1)].first_column,last_column:fe[fe.length-1].last_column},ne&&(Pe._$.range=[fe[fe.length-(oe||1)].range[0],fe[fe.length-1].range[1]]),qe=this.performAction.apply(Pe,[Te,Ue,Be,U.yy,ge[1],$e,fe].concat(j)),typeof qe<"u")return qe;oe&&(we=we.slice(0,-1*oe*2),$e=$e.slice(0,-1*oe),fe=fe.slice(0,-1*oe)),we.push(this.productions_[ge[1]][0]),$e.push(Pe.$),fe.push(Pe._$),et=Ke[we[we.length-2]][we[we.length-1]],we.push(et);break;case 3:return!0}}return!0},"parse")},xe=(function(){var Se={EOF:1,parseError:o(function(ke,we){if(this.yy.parser)this.yy.parser.parseError(ke,we);else throw new Error(ke)},"parseError"),setInput:o(function(Me,ke){return this.yy=ke||this.yy||{},this._input=Me,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Me=this._input[0];this.yytext+=Me,this.yyleng++,this.offset++,this.match+=Me,this.matched+=Me;var ke=Me.match(/(?:\r\n?|\n).*/g);return ke?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Me},"input"),unput:o(function(Me){var ke=Me.length,we=Me.split(/(?:\r\n?|\n)/g);this._input=Me+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ke),this.offset-=ke;var _e=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),we.length-1&&(this.yylineno-=we.length-1);var $e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:we?(we.length===_e.length?this.yylloc.first_column:0)+_e[_e.length-we.length].length-we[0].length:this.yylloc.first_column-ke},this.options.ranges&&(this.yylloc.range=[$e[0],$e[0]+this.yyleng-ke]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Me){this.unput(this.match.slice(Me))},"less"),pastInput:o(function(){var Me=this.matched.substr(0,this.matched.length-this.match.length);return(Me.length>20?"...":"")+Me.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Me=this.match;return Me.length<20&&(Me+=this._input.substr(0,20-Me.length)),(Me.substr(0,20)+(Me.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Me=this.pastInput(),ke=new Array(Me.length+1).join("-");return Me+this.upcomingInput()+` +`+ke+"^"},"showPosition"),test_match:o(function(Me,ke){var we,_e,$e;if(this.options.backtrack_lexer&&($e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($e.yylloc.range=this.yylloc.range.slice(0))),_e=Me[0].match(/(?:\r\n?|\n).*/g),_e&&(this.yylineno+=_e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_e?_e[_e.length-1].length-_e[_e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Me[0].length},this.yytext+=Me[0],this.match+=Me[0],this.matches=Me,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Me[0].length),this.matched+=Me[0],we=this.performAction.call(this,this.yy,this,ke,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),we)return we;if(this._backtrack){for(var fe in $e)this[fe]=$e[fe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Me,ke,we,_e;this._more||(this.yytext="",this.match="");for(var $e=this._currentRules(),fe=0;fe<$e.length;fe++)if(we=this._input.match(this.rules[$e[fe]]),we&&(!ke||we[0].length>ke[0].length)){if(ke=we,_e=fe,this.options.backtrack_lexer){if(Me=this.test_match(we,$e[fe]),Me!==!1)return Me;if(this._backtrack){ke=!1;continue}else return!1}else if(!this.options.flex)break}return ke?(Me=this.test_match(ke,$e[_e]),Me!==!1?Me:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ke=this.next();return ke||this.lex()},"lex"),begin:o(function(ke){this.conditionStack.push(ke)},"begin"),popState:o(function(){var ke=this.conditionStack.length-1;return ke>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ke){return ke=this.conditionStack.length-1-Math.abs(ke||0),ke>=0?this.conditionStack[ke]:"INITIAL"},"topState"),pushState:o(function(ke){this.begin(ke)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ke,we,_e,$e){var fe=$e;switch(_e){case 0:return this.begin("acc_title"),24;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),26;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 72;case 16:return 4;case 17:return this.begin("block"),17;break;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 61;case 25:return 58;case 26:return 58;case 27:return 62;case 28:break;case 29:return this.popState(),19;break;case 30:return we.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;break;case 34:return this.popState(),10;break;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;break;case 40:return 43;case 41:return 65;case 42:return 67;case 43:return 67;case 44:return 67;case 45:return 65;case 46:return 65;case 47:return 66;case 48:return 66;case 49:return 66;case 50:return 66;case 51:return 66;case 52:return 67;case 53:return 66;case 54:return 67;case 55:return 68;case 56:return 68;case 57:return 51;case 58:return 68;case 59:return 68;case 60:return 52;case 61:return 48;case 62:return 68;case 63:return 65;case 64:return 66;case 65:return 67;case 66:return 69;case 67:return 70;case 68:return 71;case 69:return 71;case 70:return 70;case 71:return 70;case 72:return 70;case 73:return 41;case 74:return 47;case 75:return 40;case 76:return we.yytext[0];case 77:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,73,74],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,75,76,77],inclusive:!0}}};return Se})();Z.lexer=xe;function de(){this.yy={}}return o(de,"Parser"),de.prototype=Z,Z.Parser=de,new de})();IB.parser=IB;Hge=IB});var SC,jge=O(()=>{"use strict";xt();jt();si();ar();SC=class{constructor(){this.entities=new Map;this.relationships=[];this.classes=new Map;this.direction="TB";this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"};this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"};this.setAccTitle=Lr;this.getAccTitle=Or;this.setAccDescription=Pr;this.getAccDescription=Br;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getConfig=o(()=>ve().er,"getConfig");this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"ErDB")}addEntity(e,r=""){return this.entities.has(e)?!this.entities.get(e)?.alias&&r&&(this.entities.get(e).alias=r,K.info(`Add alias '${r}' to entity '${e}'`)):(this.entities.set(e,{id:`entity-${e}-${this.entities.size}`,label:e,attributes:[],alias:r,shape:"erBox",look:ve().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),K.info("Added new entity :",e)),this.entities.get(e)}getEntity(e){return this.entities.get(e)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(e,r){let n=this.addEntity(e),i;for(i=r.length-1;i>=0;i--)r[i].keys||(r[i].keys=[]),r[i].comment||(r[i].comment=""),n.attributes.push(r[i]),K.debug("Added attribute ",r[i].name)}addRelationship(e,r,n,i){let a=this.entities.get(e),s=this.entities.get(n);if(!a||!s)return;let l={entityA:a.id,roleA:r,entityB:s.id,relSpec:i};this.relationships.push(l),K.debug("Added new relationship :",l)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(e){this.direction=e}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}addCssStyles(e,r){for(let n of e){let i=this.entities.get(n);if(!r||!i)return;for(let a of r)i.cssStyles.push(a)}}addClass(e,r){e.forEach(n=>{let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)})})}setClass(e,r){for(let n of e){let i=this.entities.get(n);if(i)for(let a of r)i.cssClasses+=" "+a}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],_r()}getData(){let e=[],r=[],n=ve();for(let a of this.entities.keys()){let s=this.entities.get(a);s&&(s.cssCompiledStyles=this.getCompiledStyles(s.cssClasses.split(" ")),e.push(s))}let i=0;for(let a of this.relationships){let s={id:hu(a.entityA,a.entityB,{prefix:"id",counter:i++}),type:"normal",curve:"basis",start:a.entityA,end:a.entityB,label:a.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:a.relSpec.cardB.toLowerCase(),arrowTypeEnd:a.relSpec.cardA.toLowerCase(),pattern:a.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:n.look,labelType:"markdown"};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:"TB"}}}});var OB={};vr(OB,{draw:()=>itt});var itt,Xge=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();Ar();itt=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing er diagram (unified)",e);let{securityLevel:i,er:a,layout:s}=ve(),l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=Ru(s),l.config.flowchart.nodeSpacing=a?.nodeSpacing||140,l.config.flowchart.rankSpacing=a?.rankSpacing||80,l.direction=n.db.getDirection(),l.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],l.diagramId=e,await Ol(l,u),l.layoutAlgorithm==="elk"&&u.select(".edges").lower();let h=u.selectAll('[id*="-background"]');Array.from(h).length>0&&h.each(function(){let d=je(this),m=d.attr("id").replace("-background",""),g=u.select(`#${CSS.escape(m)}`);if(!g.empty()){let y=g.attr("transform");d.attr("transform",y)}});let f=8;Xt.insertTitle(u,"erDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,f,"erDiagram",a?.useMaxWidth??!0)},"draw")});var att,stt,Kge,Qge=O(()=>{"use strict";Ys();att=o((t,e)=>{let r=_p,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return bs(n,i,a,e)},"fade"),stt=o(t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .labelBkg { + background-color: ${att(t.tertiaryColor,.5)}; + } + + .edgeLabel .label { + fill: ${t.nodeBorder}; + font-size: 14px; + } + + .label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + + .edge-pattern-dashed { + stroke-dasharray: 8,8; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon + { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .relationshipLine { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; + } + + .marker { + fill: none !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + } + .edgeLabel .label rect { + fill: ${t.edgeLabelBackground}; + } + .edgeLabel .label text { + fill: ${t.textColor}; + } +`,"getStyles"),Kge=stt});var Zge={};vr(Zge,{diagram:()=>ott});var ott,Jge=O(()=>{"use strict";Yge();jge();Xge();Qge();ott={parser:Hge,get db(){return new SC},renderer:OB,styles:Kge}});function Si(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function oa(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"ref"in t}function Xo(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"items"in t}function PB(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function j0(t){return typeof t=="object"&&t!==null&&typeof t.info=="object"&&typeof t.message=="string"}function wc(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function Nd(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function fT(t){return wc(t)&&typeof t.fullText=="string"}var Y0,kc=O(()=>{"use strict";o(Si,"isAstNode");o(oa,"isReference");o(Xo,"isMultiReference");o(PB,"isAstNodeDescription");o(j0,"isLinkingError");Y0=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let r=this.types[e.container.$type];if(!r)throw new Error(`Type ${e.container.$type||"undefined"} not found.`);let n=r.properties[e.property]?.referenceType;if(!n)throw new Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return n}getTypeMetaData(e){let r=this.types[e];return r||{name:e,properties:{},superTypes:[]}}isInstance(e,r){return Si(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.types[e],s=a?a.superTypes.some(l=>this.isSubtype(l,r)):!1;return n[r]=s,s}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(wc,"isCompositeCstNode");o(Nd,"isLeafCstNode");o(fT,"isRootCstNode")});function ftt(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function CC(t){return!!t&&typeof t[Symbol.iterator]=="function"}function Hr(...t){if(t.length===1){let e=t[0];if(e instanceof Ko)return e;if(CC(e))return new Ko(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new Ko(()=>({index:0}),r=>r.index1?new Ko(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex{"use strict";Ko=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new t(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),r=>{let n;if(!r.firstDone){do if(n=this.nextFn(r.first),!n.done)return n;while(!n.done);r.firstDone=!0}do if(n=r.iterator.next(),!n.done)return n;while(!n.done);return ls})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=ftt(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?ls:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return ls})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(CC(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return ls})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(CC(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return ls})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?ls:this.nextFn(r.state)))}distinct(e){return new t(()=>({set:new Set,internalState:this.startFn()}),r=>{let n;do if(n=this.nextFn(r.internalState),!n.done){let i=e?e(n.value):n.value;if(!r.set.has(i))return r.set.add(i),n}while(!n.done);return ls})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(ftt,"toString");o(CC,"isIterable");Md=new Ko(()=>{},()=>ls),ls=Object.freeze({done:!0,value:void 0});o(Hr,"stream");Nu=class extends Ko{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return ls})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(cy||(cy={}))});var _C={};vr(_C,{assignMandatoryProperties:()=>$B,copyAstNode:()=>FB,findRootNode:()=>hy,getContainerOfType:()=>zh,getDocument:()=>cs,getReferenceNodes:()=>AC,hasContainerOfType:()=>dtt,linkContentToContainer:()=>uy,streamAllContents:()=>Ec,streamAst:()=>Ps,streamContents:()=>dT,streamReferences:()=>Id});function uy(t,e={}){for(let[r,n]of Object.entries(t))r.startsWith("$")||(Array.isArray(n)?n.forEach((i,a)=>{Si(i)&&(i.$container=t,i.$containerProperty=r,i.$containerIndex=a,e.deep&&uy(i,e))}):Si(n)&&(n.$container=t,n.$containerProperty=r,e.deep&&uy(n,e)))}function zh(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function dtt(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function cs(t){let r=hy(t).$document;if(!r)throw new Error("AST node has no document.");return r}function hy(t){for(;t.$container;)t=t.$container;return t}function AC(t){return oa(t)?t.ref?[t.ref]:[]:Xo(t)?t.items.map(e=>e.ref):[]}function dT(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new Ko(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexdT(r,e))}function Ps(t,e){if(t){if(e?.range&&!BB(t,e.range))return new Nu(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Nu(t,r=>dT(r,e),{includeRoot:!0})}function BB(t,e){if(!e)return!0;let r=t.$cstNode?.range;return r?zB(r,e):!1}function Id(t){return new Ko(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{"use strict";kc();Os();Sc();o(uy,"linkContentToContainer");o(zh,"getContainerOfType");o(dtt,"hasContainerOfType");o(cs,"getDocument");o(hy,"findRootNode");o(AC,"getReferenceNodes");o(dT,"streamContents");o(Ec,"streamAllContents");o(Ps,"streamAst");o(BB,"isAstNodeInRange");o(Id,"streamReferences");o($B,"assignMandatoryProperties");o(t1e,"copyDefaultValue");o(FB,"copyAstNode")});var ET={};vr(ET,{AbstractElement:()=>To,AbstractParserRule:()=>pT,AbstractRule:()=>fy,AbstractType:()=>Qo,Action:()=>Od,Alternatives:()=>mT,ArrayLiteral:()=>DC,ArrayType:()=>RC,Assignment:()=>Pd,BooleanLiteral:()=>LC,CharacterRange:()=>Bd,Condition:()=>Fd,Conjunction:()=>gT,CrossReference:()=>$d,Disjunction:()=>yT,EndOfFile:()=>NC,Grammar:()=>Gh,GrammarImport:()=>MC,Group:()=>X0,InferredType:()=>IC,InfixRule:()=>Mu,InfixRuleOperatorList:()=>vT,InfixRuleOperators:()=>OC,Interface:()=>dy,Keyword:()=>py,LangiumGrammarAstReflection:()=>xy,LangiumGrammarTerminals:()=>ptt,NamedArgument:()=>my,NegatedToken:()=>K0,Negation:()=>PC,NumberLiteral:()=>BC,Parameter:()=>gy,ParameterReference:()=>FC,ParserRule:()=>Cc,ReferenceType:()=>xT,RegexToken:()=>Q0,ReturnType:()=>$C,RuleCall:()=>Z0,SimpleType:()=>yy,StringLiteral:()=>zC,TerminalAlternatives:()=>J0,TerminalElement:()=>wo,TerminalGroup:()=>em,TerminalRule:()=>Vh,TerminalRuleCall:()=>tm,Type:()=>bT,TypeAttribute:()=>rm,TypeDefinition:()=>nm,UnionType:()=>GC,UnorderedGroup:()=>TT,UntilToken:()=>im,ValueLiteral:()=>am,Wildcard:()=>vy,isAbstractElement:()=>wT,isAbstractParserRule:()=>qh,isAbstractRule:()=>mtt,isAbstractType:()=>gtt,isAction:()=>Uh,isAlternatives:()=>VC,isArrayLiteral:()=>ytt,isArrayType:()=>GB,isAssignment:()=>Ac,isBooleanLiteral:()=>VB,isCharacterRange:()=>qB,isCondition:()=>vtt,isConjunction:()=>UB,isCrossReference:()=>_c,isDisjunction:()=>WB,isEndOfFile:()=>HB,isGrammar:()=>xtt,isGrammarImport:()=>btt,isGroup:()=>zd,isInferredType:()=>kT,isInfixRule:()=>Gd,isInfixRuleOperatorList:()=>Ttt,isInfixRuleOperators:()=>wtt,isInterface:()=>YB,isKeyword:()=>Pl,isNamedArgument:()=>ktt,isNegatedToken:()=>jB,isNegation:()=>XB,isNumberLiteral:()=>Ett,isParameter:()=>Stt,isParameterReference:()=>KB,isParserRule:()=>Sa,isReferenceType:()=>QB,isRegexToken:()=>ZB,isReturnType:()=>JB,isRuleCall:()=>Dc,isSimpleType:()=>qC,isStringLiteral:()=>Ctt,isTerminalAlternatives:()=>eF,isTerminalElement:()=>Att,isTerminalGroup:()=>tF,isTerminalRule:()=>Bs,isTerminalRuleCall:()=>UC,isType:()=>WC,isTypeAttribute:()=>_tt,isTypeDefinition:()=>Dtt,isUnionType:()=>rF,isUnorderedGroup:()=>HC,isUntilToken:()=>nF,isValueLiteral:()=>Rtt,isWildcard:()=>iF,reflection:()=>mr});function wT(t){return mr.isInstance(t,To.$type)}function qh(t){return mr.isInstance(t,pT.$type)}function mtt(t){return mr.isInstance(t,fy.$type)}function gtt(t){return mr.isInstance(t,Qo.$type)}function Uh(t){return mr.isInstance(t,Od.$type)}function VC(t){return mr.isInstance(t,mT.$type)}function ytt(t){return mr.isInstance(t,DC.$type)}function GB(t){return mr.isInstance(t,RC.$type)}function Ac(t){return mr.isInstance(t,Pd.$type)}function VB(t){return mr.isInstance(t,LC.$type)}function qB(t){return mr.isInstance(t,Bd.$type)}function vtt(t){return mr.isInstance(t,Fd.$type)}function UB(t){return mr.isInstance(t,gT.$type)}function _c(t){return mr.isInstance(t,$d.$type)}function WB(t){return mr.isInstance(t,yT.$type)}function HB(t){return mr.isInstance(t,NC.$type)}function xtt(t){return mr.isInstance(t,Gh.$type)}function btt(t){return mr.isInstance(t,MC.$type)}function zd(t){return mr.isInstance(t,X0.$type)}function kT(t){return mr.isInstance(t,IC.$type)}function Gd(t){return mr.isInstance(t,Mu.$type)}function Ttt(t){return mr.isInstance(t,vT.$type)}function wtt(t){return mr.isInstance(t,OC.$type)}function YB(t){return mr.isInstance(t,dy.$type)}function Pl(t){return mr.isInstance(t,py.$type)}function ktt(t){return mr.isInstance(t,my.$type)}function jB(t){return mr.isInstance(t,K0.$type)}function XB(t){return mr.isInstance(t,PC.$type)}function Ett(t){return mr.isInstance(t,BC.$type)}function Stt(t){return mr.isInstance(t,gy.$type)}function KB(t){return mr.isInstance(t,FC.$type)}function Sa(t){return mr.isInstance(t,Cc.$type)}function QB(t){return mr.isInstance(t,xT.$type)}function ZB(t){return mr.isInstance(t,Q0.$type)}function JB(t){return mr.isInstance(t,$C.$type)}function Dc(t){return mr.isInstance(t,Z0.$type)}function qC(t){return mr.isInstance(t,yy.$type)}function Ctt(t){return mr.isInstance(t,zC.$type)}function eF(t){return mr.isInstance(t,J0.$type)}function Att(t){return mr.isInstance(t,wo.$type)}function tF(t){return mr.isInstance(t,em.$type)}function Bs(t){return mr.isInstance(t,Vh.$type)}function UC(t){return mr.isInstance(t,tm.$type)}function WC(t){return mr.isInstance(t,bT.$type)}function _tt(t){return mr.isInstance(t,rm.$type)}function Dtt(t){return mr.isInstance(t,nm.$type)}function rF(t){return mr.isInstance(t,GC.$type)}function HC(t){return mr.isInstance(t,TT.$type)}function nF(t){return mr.isInstance(t,im.$type)}function Rtt(t){return mr.isInstance(t,am.$type)}function iF(t){return mr.isInstance(t,vy.$type)}var ptt,To,pT,fy,Qo,Od,mT,DC,RC,Pd,LC,Bd,Fd,gT,$d,yT,NC,Gh,MC,X0,IC,Mu,vT,OC,dy,py,my,K0,PC,BC,gy,FC,Cc,xT,Q0,$C,Z0,yy,zC,J0,wo,em,Vh,tm,bT,rm,nm,GC,TT,im,am,vy,xy,mr,Zo=O(()=>{"use strict";kc();ptt={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},To={$type:"AbstractElement",cardinality:"cardinality"};o(wT,"isAbstractElement");pT={$type:"AbstractParserRule"};o(qh,"isAbstractParserRule");fy={$type:"AbstractRule"};o(mtt,"isAbstractRule");Qo={$type:"AbstractType"};o(gtt,"isAbstractType");Od={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};o(Uh,"isAction");mT={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};o(VC,"isAlternatives");DC={$type:"ArrayLiteral",elements:"elements"};o(ytt,"isArrayLiteral");RC={$type:"ArrayType",elementType:"elementType"};o(GB,"isArrayType");Pd={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};o(Ac,"isAssignment");LC={$type:"BooleanLiteral",true:"true"};o(VB,"isBooleanLiteral");Bd={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};o(qB,"isCharacterRange");Fd={$type:"Condition"};o(vtt,"isCondition");gT={$type:"Conjunction",left:"left",right:"right"};o(UB,"isConjunction");$d={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};o(_c,"isCrossReference");yT={$type:"Disjunction",left:"left",right:"right"};o(WB,"isDisjunction");NC={$type:"EndOfFile",cardinality:"cardinality"};o(HB,"isEndOfFile");Gh={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};o(xtt,"isGrammar");MC={$type:"GrammarImport",path:"path"};o(btt,"isGrammarImport");X0={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};o(zd,"isGroup");IC={$type:"InferredType",name:"name"};o(kT,"isInferredType");Mu={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};o(Gd,"isInfixRule");vT={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};o(Ttt,"isInfixRuleOperatorList");OC={$type:"InfixRuleOperators",precedences:"precedences"};o(wtt,"isInfixRuleOperators");dy={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};o(YB,"isInterface");py={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};o(Pl,"isKeyword");my={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};o(ktt,"isNamedArgument");K0={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};o(jB,"isNegatedToken");PC={$type:"Negation",value:"value"};o(XB,"isNegation");BC={$type:"NumberLiteral",value:"value"};o(Ett,"isNumberLiteral");gy={$type:"Parameter",name:"name"};o(Stt,"isParameter");FC={$type:"ParameterReference",parameter:"parameter"};o(KB,"isParameterReference");Cc={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};o(Sa,"isParserRule");xT={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};o(QB,"isReferenceType");Q0={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};o(ZB,"isRegexToken");$C={$type:"ReturnType",name:"name"};o(JB,"isReturnType");Z0={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};o(Dc,"isRuleCall");yy={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};o(qC,"isSimpleType");zC={$type:"StringLiteral",value:"value"};o(Ctt,"isStringLiteral");J0={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};o(eF,"isTerminalAlternatives");wo={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};o(Att,"isTerminalElement");em={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};o(tF,"isTerminalGroup");Vh={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};o(Bs,"isTerminalRule");tm={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};o(UC,"isTerminalRuleCall");bT={$type:"Type",name:"name",type:"type"};o(WC,"isType");rm={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};o(_tt,"isTypeAttribute");nm={$type:"TypeDefinition"};o(Dtt,"isTypeDefinition");GC={$type:"UnionType",types:"types"};o(rF,"isUnionType");TT={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};o(HC,"isUnorderedGroup");im={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};o(nF,"isUntilToken");am={$type:"ValueLiteral"};o(Rtt,"isValueLiteral");vy={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};o(iF,"isWildcard");xy=class extends Y0{static{o(this,"LangiumGrammarAstReflection")}constructor(){super(...arguments),this.types={AbstractElement:{name:To.$type,properties:{cardinality:{name:To.cardinality}},superTypes:[]},AbstractParserRule:{name:pT.$type,properties:{},superTypes:[fy.$type,Qo.$type]},AbstractRule:{name:fy.$type,properties:{},superTypes:[]},AbstractType:{name:Qo.$type,properties:{},superTypes:[]},Action:{name:Od.$type,properties:{cardinality:{name:Od.cardinality},feature:{name:Od.feature},inferredType:{name:Od.inferredType},operator:{name:Od.operator},type:{name:Od.type,referenceType:Qo.$type}},superTypes:[To.$type]},Alternatives:{name:mT.$type,properties:{cardinality:{name:mT.cardinality},elements:{name:mT.elements,defaultValue:[]}},superTypes:[To.$type]},ArrayLiteral:{name:DC.$type,properties:{elements:{name:DC.elements,defaultValue:[]}},superTypes:[am.$type]},ArrayType:{name:RC.$type,properties:{elementType:{name:RC.elementType}},superTypes:[nm.$type]},Assignment:{name:Pd.$type,properties:{cardinality:{name:Pd.cardinality},feature:{name:Pd.feature},operator:{name:Pd.operator},predicate:{name:Pd.predicate},terminal:{name:Pd.terminal}},superTypes:[To.$type]},BooleanLiteral:{name:LC.$type,properties:{true:{name:LC.true,defaultValue:!1}},superTypes:[Fd.$type,am.$type]},CharacterRange:{name:Bd.$type,properties:{cardinality:{name:Bd.cardinality},left:{name:Bd.left},lookahead:{name:Bd.lookahead},parenthesized:{name:Bd.parenthesized,defaultValue:!1},right:{name:Bd.right}},superTypes:[wo.$type]},Condition:{name:Fd.$type,properties:{},superTypes:[]},Conjunction:{name:gT.$type,properties:{left:{name:gT.left},right:{name:gT.right}},superTypes:[Fd.$type]},CrossReference:{name:$d.$type,properties:{cardinality:{name:$d.cardinality},deprecatedSyntax:{name:$d.deprecatedSyntax,defaultValue:!1},isMulti:{name:$d.isMulti,defaultValue:!1},terminal:{name:$d.terminal},type:{name:$d.type,referenceType:Qo.$type}},superTypes:[To.$type]},Disjunction:{name:yT.$type,properties:{left:{name:yT.left},right:{name:yT.right}},superTypes:[Fd.$type]},EndOfFile:{name:NC.$type,properties:{cardinality:{name:NC.cardinality}},superTypes:[To.$type]},Grammar:{name:Gh.$type,properties:{imports:{name:Gh.imports,defaultValue:[]},interfaces:{name:Gh.interfaces,defaultValue:[]},isDeclared:{name:Gh.isDeclared,defaultValue:!1},name:{name:Gh.name},rules:{name:Gh.rules,defaultValue:[]},types:{name:Gh.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:MC.$type,properties:{path:{name:MC.path}},superTypes:[]},Group:{name:X0.$type,properties:{cardinality:{name:X0.cardinality},elements:{name:X0.elements,defaultValue:[]},guardCondition:{name:X0.guardCondition},predicate:{name:X0.predicate}},superTypes:[To.$type]},InferredType:{name:IC.$type,properties:{name:{name:IC.name}},superTypes:[Qo.$type]},InfixRule:{name:Mu.$type,properties:{call:{name:Mu.call},dataType:{name:Mu.dataType},inferredType:{name:Mu.inferredType},name:{name:Mu.name},operators:{name:Mu.operators},parameters:{name:Mu.parameters,defaultValue:[]},returnType:{name:Mu.returnType,referenceType:Qo.$type}},superTypes:[pT.$type]},InfixRuleOperatorList:{name:vT.$type,properties:{associativity:{name:vT.associativity},operators:{name:vT.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:OC.$type,properties:{precedences:{name:OC.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:dy.$type,properties:{attributes:{name:dy.attributes,defaultValue:[]},name:{name:dy.name},superTypes:{name:dy.superTypes,defaultValue:[],referenceType:Qo.$type}},superTypes:[Qo.$type]},Keyword:{name:py.$type,properties:{cardinality:{name:py.cardinality},predicate:{name:py.predicate},value:{name:py.value}},superTypes:[To.$type]},NamedArgument:{name:my.$type,properties:{calledByName:{name:my.calledByName,defaultValue:!1},parameter:{name:my.parameter,referenceType:gy.$type},value:{name:my.value}},superTypes:[]},NegatedToken:{name:K0.$type,properties:{cardinality:{name:K0.cardinality},lookahead:{name:K0.lookahead},parenthesized:{name:K0.parenthesized,defaultValue:!1},terminal:{name:K0.terminal}},superTypes:[wo.$type]},Negation:{name:PC.$type,properties:{value:{name:PC.value}},superTypes:[Fd.$type]},NumberLiteral:{name:BC.$type,properties:{value:{name:BC.value}},superTypes:[am.$type]},Parameter:{name:gy.$type,properties:{name:{name:gy.name}},superTypes:[]},ParameterReference:{name:FC.$type,properties:{parameter:{name:FC.parameter,referenceType:gy.$type}},superTypes:[Fd.$type]},ParserRule:{name:Cc.$type,properties:{dataType:{name:Cc.dataType},definition:{name:Cc.definition},entry:{name:Cc.entry,defaultValue:!1},fragment:{name:Cc.fragment,defaultValue:!1},inferredType:{name:Cc.inferredType},name:{name:Cc.name},parameters:{name:Cc.parameters,defaultValue:[]},returnType:{name:Cc.returnType,referenceType:Qo.$type}},superTypes:[pT.$type]},ReferenceType:{name:xT.$type,properties:{isMulti:{name:xT.isMulti,defaultValue:!1},referenceType:{name:xT.referenceType}},superTypes:[nm.$type]},RegexToken:{name:Q0.$type,properties:{cardinality:{name:Q0.cardinality},lookahead:{name:Q0.lookahead},parenthesized:{name:Q0.parenthesized,defaultValue:!1},regex:{name:Q0.regex}},superTypes:[wo.$type]},ReturnType:{name:$C.$type,properties:{name:{name:$C.name}},superTypes:[]},RuleCall:{name:Z0.$type,properties:{arguments:{name:Z0.arguments,defaultValue:[]},cardinality:{name:Z0.cardinality},predicate:{name:Z0.predicate},rule:{name:Z0.rule,referenceType:fy.$type}},superTypes:[To.$type]},SimpleType:{name:yy.$type,properties:{primitiveType:{name:yy.primitiveType},stringType:{name:yy.stringType},typeRef:{name:yy.typeRef,referenceType:Qo.$type}},superTypes:[nm.$type]},StringLiteral:{name:zC.$type,properties:{value:{name:zC.value}},superTypes:[am.$type]},TerminalAlternatives:{name:J0.$type,properties:{cardinality:{name:J0.cardinality},elements:{name:J0.elements,defaultValue:[]},lookahead:{name:J0.lookahead},parenthesized:{name:J0.parenthesized,defaultValue:!1}},superTypes:[wo.$type]},TerminalElement:{name:wo.$type,properties:{cardinality:{name:wo.cardinality},lookahead:{name:wo.lookahead},parenthesized:{name:wo.parenthesized,defaultValue:!1}},superTypes:[To.$type]},TerminalGroup:{name:em.$type,properties:{cardinality:{name:em.cardinality},elements:{name:em.elements,defaultValue:[]},lookahead:{name:em.lookahead},parenthesized:{name:em.parenthesized,defaultValue:!1}},superTypes:[wo.$type]},TerminalRule:{name:Vh.$type,properties:{definition:{name:Vh.definition},fragment:{name:Vh.fragment,defaultValue:!1},hidden:{name:Vh.hidden,defaultValue:!1},name:{name:Vh.name},type:{name:Vh.type}},superTypes:[fy.$type]},TerminalRuleCall:{name:tm.$type,properties:{cardinality:{name:tm.cardinality},lookahead:{name:tm.lookahead},parenthesized:{name:tm.parenthesized,defaultValue:!1},rule:{name:tm.rule,referenceType:Vh.$type}},superTypes:[wo.$type]},Type:{name:bT.$type,properties:{name:{name:bT.name},type:{name:bT.type}},superTypes:[Qo.$type]},TypeAttribute:{name:rm.$type,properties:{defaultValue:{name:rm.defaultValue},isOptional:{name:rm.isOptional,defaultValue:!1},name:{name:rm.name},type:{name:rm.type}},superTypes:[]},TypeDefinition:{name:nm.$type,properties:{},superTypes:[]},UnionType:{name:GC.$type,properties:{types:{name:GC.types,defaultValue:[]}},superTypes:[nm.$type]},UnorderedGroup:{name:TT.$type,properties:{cardinality:{name:TT.cardinality},elements:{name:TT.elements,defaultValue:[]}},superTypes:[To.$type]},UntilToken:{name:im.$type,properties:{cardinality:{name:im.cardinality},lookahead:{name:im.lookahead},parenthesized:{name:im.parenthesized,defaultValue:!1},terminal:{name:im.terminal}},superTypes:[wo.$type]},ValueLiteral:{name:am.$type,properties:{},superTypes:[]},Wildcard:{name:vy.$type,properties:{cardinality:{name:vy.cardinality},lookahead:{name:vy.lookahead},parenthesized:{name:vy.parenthesized,defaultValue:!1}},superTypes:[wo.$type]}}}},mr=new xy});var jC={};vr(jC,{DefaultNameRegexp:()=>YC,RangeComparison:()=>Iu,compareRange:()=>n1e,findCommentNode:()=>oF,findDeclarationNodeAtOffset:()=>Mtt,findLeafNodeAtOffset:()=>lF,findLeafNodeBeforeOffset:()=>i1e,flattenCst:()=>Ntt,getDatatypeNode:()=>Ltt,getInteriorNodes:()=>Ptt,getNextNode:()=>Itt,getPreviousNode:()=>s1e,getStartlineNode:()=>Ott,inRange:()=>zB,isChildNode:()=>sF,isCommentNode:()=>aF,streamCst:()=>sm,toDocumentSegment:()=>om,tokenToRange:()=>by});function Ltt(t){let e=t,r=!1;for(;e;){let n=zh(e.grammarSource,Sa);if(n&&n.dataType)e=e.container,r=!0;else return r?e:void 0}}function sm(t){return new Nu(t,e=>wc(e)?e.content:[],{includeRoot:!0})}function Ntt(t){return sm(t).filter(Nd)}function sF(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function by(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function om(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function n1e(t,e){if(t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Iu.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.lineIu.After}function Mtt(t,e,r=YC){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return lF(t,e)}}function oF(t,e){if(t){let r=s1e(t,!0);if(r&&aF(r,e))return r;if(fT(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(aF(a,e))return a}}}}function aF(t,e){return Nd(t)&&e.includes(t.tokenType.name)}function lF(t,e){if(Nd(t))return t;if(wc(t)){let r=a1e(t,e,!1);if(r)return lF(r,e)}}function i1e(t,e){if(Nd(t))return t;if(wc(t)){let r=a1e(t,e,!0);if(r)return i1e(r,e)}}function a1e(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function s1e(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function Itt(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n{"use strict";kc();Os();us();Zo();o(Ltt,"getDatatypeNode");o(sm,"streamCst");o(Ntt,"flattenCst");o(sF,"isChildNode");o(by,"tokenToRange");o(om,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(Iu||(Iu={}));o(n1e,"compareRange");o(zB,"inRange");YC=/^[\w\p{L}]$/u;o(Mtt,"findDeclarationNodeAtOffset");o(oF,"findCommentNode");o(aF,"isCommentNode");o(lF,"findLeafNodeAtOffset");o(i1e,"findLeafNodeBeforeOffset");o(a1e,"binarySearch");o(s1e,"getPreviousNode");o(Itt,"getNextNode");o(Ott,"getStartlineNode");o(Ptt,"getInteriorNodes");o(Btt,"getCommonParent");o(r1e,"getParentChain")});function Ou(t,e="Error: Got unexpected value."){throw new Error(e)}function o1e(t,e="Error: Condition is violated."){if(!t)throw new Error(e)}var lm,XC=O(()=>{"use strict";lm=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(Ou,"assertUnreachable");o(o1e,"assertCondition")});function xr(t){return t.charCodeAt(0)}function KC(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function Ty(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function cm(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function ST(){throw Error("Internal Error - Should never get here!")}function cF(t){return t.type==="Character"}var uF=O(()=>{"use strict";o(xr,"cc");o(KC,"insertToSet");o(Ty,"addFlag");o(cm,"ASSERT_EXISTS");o(ST,"ASSERT_NEVER_REACH_HERE");o(cF,"isCharacter")});var CT,AT,hF,l1e=O(()=>{"use strict";uF();CT=[];for(let t=xr("0");t<=xr("9");t++)CT.push(t);AT=[xr("_")].concat(CT);for(let t=xr("a");t<=xr("z");t++)AT.push(t);for(let t=xr("A");t<=xr("Z");t++)AT.push(t);hF=[xr(" "),xr("\f"),xr(` +`),xr("\r"),xr(" "),xr("\v"),xr(" "),xr("\xA0"),xr("\u1680"),xr("\u2000"),xr("\u2001"),xr("\u2002"),xr("\u2003"),xr("\u2004"),xr("\u2005"),xr("\u2006"),xr("\u2007"),xr("\u2008"),xr("\u2009"),xr("\u200A"),xr("\u2028"),xr("\u2029"),xr("\u202F"),xr("\u205F"),xr("\u3000"),xr("\uFEFF")]});var Ftt,QC,$tt,um,c1e=O(()=>{"use strict";uF();l1e();Ftt=/[0-9a-fA-F]/,QC=/[0-9]/,$tt=/[1-9]/,um=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Ty(n,"global");break;case"i":Ty(n,"ignoreCase");break;case"m":Ty(n,"multiLine");break;case"u":Ty(n,"unicode");break;case"y":Ty(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break;case"<":{switch(this.popChar()){case"=":r="Lookbehind";break;case"!":r="NegativeLookbehind"}break}}cm(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return ST()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;cm(r);break}if(!(e===!0&&r===void 0)&&cm(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),cm(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):ST()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[xr(` +`),xr("\r"),xr("\u2028"),xr("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=CT;break;case"D":e=CT,r=!0;break;case"s":e=hF;break;case"S":e=hF,r=!0;break;case"w":e=AT;break;case"W":e=AT,r=!0;break}return cm(e)?{type:"Set",value:e,complement:r}:ST()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=xr("\f");break;case"n":e=xr(` +`);break;case"r":e=xr("\r");break;case"t":e=xr(" ");break;case"v":e=xr("\v");break}return cm(e)?{type:"Character",value:e}:ST()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:xr("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:xr(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:xr(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(cF(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(cF(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var Pu,u1e=O(()=>{"use strict";Pu=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var _T=O(()=>{"use strict";c1e();u1e()});var ZC={};vr(ZC,{NEWLINE_REGEXP:()=>dF,escapeRegExp:()=>Vd,getTerminalParts:()=>ztt,isMultilineComment:()=>pF,isWhitespace:()=>DT,partialMatches:()=>mF,partialRegExp:()=>d1e,whitespaceCharacters:()=>f1e});function ztt(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=h1e.pattern(t),r=[];for(let n of e.value.value)hm.reset(t),hm.visit(n),r.push({start:hm.startRegexp,end:hm.endRegex});return r}catch{return[]}}function pF(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),hm.reset(t),hm.visit(h1e.pattern(t)),hm.multiline}catch{return!1}}function DT(t){let e=typeof t=="string"?new RegExp(t):t;return f1e.some(r=>e.test(r))}function Vd(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function mF(t,e){let r=d1e(t),n=e.match(r);return!!n&&n[0].length>0}function d1e(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var dF,h1e,fF,hm,f1e,wy=O(()=>{"use strict";_T();dF=/\r?\n/gm,h1e=new um,fF=class extends Pu{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=Vd(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},hm=new fF;o(ztt,"getTerminalParts");o(pF,"isMultilineComment");f1e=`\f +\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");o(DT,"isWhitespace");o(Vd,"escapeRegExp");o(mF,"partialMatches");o(d1e,"partialRegExp")});var t6={};vr(t6,{findAssignment:()=>EF,findNameAssignment:()=>JC,findNodeForKeyword:()=>wF,findNodeForProperty:()=>LT,findNodesForKeyword:()=>Vtt,findNodesForKeywordInternal:()=>kF,findNodesForProperty:()=>bF,getActionAtElement:()=>v1e,getActionType:()=>b1e,getAllReachableRules:()=>RT,getAllRulesUsedForCrossReferences:()=>Gtt,getCrossReferenceTerminal:()=>vF,getEntryRule:()=>p1e,getExplicitRuleType:()=>e6,getHiddenRules:()=>m1e,getRuleType:()=>SF,getRuleTypeName:()=>Ytt,getTypeName:()=>qd,isArrayCardinality:()=>Utt,isArrayOperator:()=>Wtt,isCommentTerminal:()=>xF,isDataType:()=>Htt,isDataTypeRule:()=>NT,isOptionalCardinality:()=>qtt,terminalRegex:()=>ky});function p1e(t){return t.rules.find(e=>Sa(e)&&e.entry)}function m1e(t){return t.rules.filter(e=>Bs(e)&&e.hidden)}function RT(t,e){let r=new Set,n=p1e(t);if(!n)return new Set(t.rules);let i=[n].concat(m1e(t));for(let s of i)g1e(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||Bs(s)&&s.hidden)&&a.add(s);return a}function g1e(t,e,r){e.add(t.name),Ec(t).forEach(n=>{if(Dc(n)||r&&UC(n)){let i=n.rule.ref;i&&!e.has(i.name)&&g1e(i,e,r)}})}function Gtt(t){let e=new Set;return Ec(t).forEach(r=>{_c(r)&&(Sa(r.type.ref)&&e.add(r.type.ref),kT(r.type.ref)&&Sa(r.type.ref.$container)&&e.add(r.type.ref.$container))}),e}function vF(t){if(t.terminal)return t.terminal;if(t.type.ref)return JC(t.type.ref)?.terminal}function xF(t){return t.hidden&&!DT(ky(t))}function bF(t,e){return!t||!e?[]:TF(t,e,t.astNode,!0)}function LT(t,e,r){if(!t||!e)return;let n=TF(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function TF(t,e,r,n){if(!n){let i=zh(t.grammarSource,Ac);if(i&&i.feature===e)return[t]}return wc(t)&&t.astNode===r?t.content.flatMap(i=>TF(i,e,r,!1)):[]}function Vtt(t,e){return t?kF(t,e,t?.astNode):[]}function wF(t,e,r){if(!t)return;let n=kF(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function kF(t,e,r){if(t.astNode!==r)return[];if(Pl(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=sm(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Pl(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function EF(t){let e=t.astNode;for(;e===t.container?.astNode;){let r=zh(t.grammarSource,Ac);if(r)return r;t=t.container}}function JC(t){let e=t;return kT(e)&&(Uh(e.$container)?e=e.$container.$container:qh(e.$container)?e=e.$container:Ou(e.$container)),y1e(t,e,new Map)}function y1e(t,e,r){function n(i,a){let s;return zh(i,Ac)||(s=y1e(a,a,r)),r.set(t,s),s}if(o(n,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let i of Ec(e)){if(Ac(i)&&i.feature.toLowerCase()==="name")return r.set(t,i),i;if(Dc(i)&&Sa(i.rule.ref))return n(i,i.rule.ref);if(qC(i)&&i.typeRef?.ref)return n(i,i.typeRef.ref)}}function v1e(t){let e=t.$container;if(zd(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(Uh(a))return a;{let s=Ec(r[i]).find(Uh);if(s)return s}}}if(wT(e))return v1e(e)}function qtt(t,e){return t==="?"||t==="*"||zd(e)&&!!e.guardCondition}function Utt(t){return t==="*"||t==="+"}function Wtt(t){return t==="+="}function NT(t){return x1e(t,new Set)}function x1e(t,e){if(e.has(t))return!0;e.add(t);for(let r of Ec(t))if(Dc(r)){if(!r.rule.ref||Sa(r.rule.ref)&&!x1e(r.rule.ref,e)||Gd(r.rule.ref))return!1}else{if(Ac(r))return!1;if(Uh(r))return!1}return!!t.definition}function Htt(t){return yF(t.type,new Set)}function yF(t,e){if(e.has(t))return!0;if(e.add(t),GB(t))return!1;if(QB(t))return!1;if(rF(t))return t.types.every(r=>yF(r,e));if(qC(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return WC(r)?yF(r.type,e):!1}else return!1}else return!1}function e6(t){if(!Bs(t)){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e)return e.name}}}function qd(t){if(qh(t))return Sa(t)&&NT(t)?t.name:e6(t)??t.name;if(YB(t)||WC(t)||JB(t))return t.name;if(Uh(t)){let e=b1e(t);if(e)return e}else if(kT(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function b1e(t){if(t.inferredType)return t.inferredType.name;if(t.type?.ref)return qd(t.type.ref)}function Ytt(t){return Bs(t)?t.type?.name??"string":Sa(t)&&NT(t)?t.name:e6(t)??t.name}function SF(t){return Bs(t)?t.type?.name??"string":e6(t)??t.name}function ky(t){let e={s:!1,i:!1,u:!1},r=Ey(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function Ey(t,e){if(eF(t))return jtt(t);if(tF(t))return Xtt(t);if(qB(t))return Ztt(t);if(UC(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Wh(Ey(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}else{if(jB(t))return Qtt(t);if(nF(t))return Ktt(t);if(ZB(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Wh(n,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}else{if(iF(t))return Wh(CF,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized});throw new Error(`Invalid terminal element: ${t?.$type}, ${t?.$cstNode?.text}`)}}}function jtt(t){return Wh(t.elements.map(e=>Ey(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function Xtt(t){return Wh(t.elements.map(e=>Ey(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function Ktt(t){return Wh(`${CF}*?${Ey(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}function Qtt(t){return Wh(`(?!${Ey(t.terminal)})${CF}*?`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}function Ztt(t){return t.right?Wh(`[${gF(t.left)}-${gF(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1}):Wh(gF(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function gF(t){return Vd(t.value)}function Wh(t,e){return(e.parenthesized||e.lookahead||e.wrap!==!1)&&(t=`(${e.lookahead??(e.parenthesized?"":"?:")}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var CF,Rc=O(()=>{"use strict";XC();Zo();kc();us();Sc();wy();o(p1e,"getEntryRule");o(m1e,"getHiddenRules");o(RT,"getAllReachableRules");o(g1e,"ruleDfs");o(Gtt,"getAllRulesUsedForCrossReferences");o(vF,"getCrossReferenceTerminal");o(xF,"isCommentTerminal");o(bF,"findNodesForProperty");o(LT,"findNodeForProperty");o(TF,"findNodesForPropertyInternal");o(Vtt,"findNodesForKeyword");o(wF,"findNodeForKeyword");o(kF,"findNodesForKeywordInternal");o(EF,"findAssignment");o(JC,"findNameAssignment");o(y1e,"findNameAssignmentInternal");o(v1e,"getActionAtElement");o(qtt,"isOptionalCardinality");o(Utt,"isArrayCardinality");o(Wtt,"isArrayOperator");o(NT,"isDataTypeRule");o(x1e,"isDataTypeRuleInternal");o(Htt,"isDataType");o(yF,"isDataTypeInternal");o(e6,"getExplicitRuleType");o(qd,"getTypeName");o(b1e,"getActionType");o(Ytt,"getRuleTypeName");o(SF,"getRuleType");o(ky,"terminalRegex");CF=/[\s\S]/.source;o(Ey,"abstractElementToRegex");o(jtt,"terminalAlternativesToRegex");o(Xtt,"terminalGroupToRegex");o(Ktt,"untilTokenToRegex");o(Qtt,"negateTokenToRegex");o(Ztt,"characterRangeToRegex");o(gF,"keywordToRegex");o(Wh,"withCardinality")});function AF(t){let e=[],r=t.Grammar;for(let n of r.rules)Bs(n)&&xF(n)&&pF(ky(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:YC}}var _F=O(()=>{"use strict";Sc();Rc();wy();Zo();o(AF,"createGrammarConfig")});var DF=O(()=>{"use strict"});function Sy(t){console&&console.error&&console.error(`Error: ${t}`)}function MT(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var T1e=O(()=>{"use strict";o(Sy,"PRINT_ERROR");o(MT,"PRINT_WARNING")});function IT(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var w1e=O(()=>{"use strict";o(IT,"timer")});function OT(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var k1e=O(()=>{"use strict";o(OT,"toFastProperties")});var Cy=O(()=>{"use strict";T1e();w1e();k1e()});function Jtt(t){return ert(t)?t.LABEL:t.name}function ert(t){return Bi(t.LABEL)&&t.LABEL!==""}function r6(t){return lt(t,Ay)}function Ay(t){function e(r){return lt(r,Ay)}if(o(e,"convertDefinition"),t instanceof Sn){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return Bi(t.label)&&(r.label=t.label),r}else{if(t instanceof Yn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof Cn)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof jn)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Xn)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Ay(new Yr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof zn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Ay(new Yr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Jr)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Gn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof Yr){let r={type:"Terminal",name:t.terminalType.name,label:Jtt(t.terminalType),idx:t.idx};Bi(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=Al(n)?n.source:n),r}else{if(t instanceof Fs)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var Jo,Sn,Fs,Yn,Cn,jn,Xn,Jr,zn,Gn,Yr,n6=O(()=>{"use strict";rr();o(Jtt,"tokenLabel");o(ert,"hasTokenLabel");Jo=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Oe(this.definition,r=>{r.accept(e)})}},Sn=class extends Jo{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,$a(this,go(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},Fs=class extends Jo{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",$a(this,go(e,r=>r!==void 0))}},Yn=class extends Jo{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,$a(this,go(e,r=>r!==void 0))}},Cn=class extends Jo{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},jn=class extends Jo{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},Xn=class extends Jo{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},Jr=class extends Jo{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},zn=class extends Jo{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},Gn=class extends Jo{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,$a(this,go(e,r=>r!==void 0))}},Yr=class{static{o(this,"Terminal")}constructor(e){this.idx=1,$a(this,go(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(r6,"serializeGrammar");o(Ay,"serializeProduction")});var $s,E1e=O(()=>{"use strict";n6();$s=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case Sn:return this.visitNonTerminal(r);case Yn:return this.visitAlternative(r);case Cn:return this.visitOption(r);case jn:return this.visitRepetitionMandatory(r);case Xn:return this.visitRepetitionMandatoryWithSeparator(r);case zn:return this.visitRepetitionWithSeparator(r);case Jr:return this.visitRepetition(r);case Gn:return this.visitAlternation(r);case Yr:return this.visitTerminal(r);case Fs:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function RF(t){return t instanceof Yn||t instanceof Cn||t instanceof Jr||t instanceof jn||t instanceof Xn||t instanceof zn||t instanceof Yr||t instanceof Fs}function fm(t,e=[]){return t instanceof Cn||t instanceof Jr||t instanceof zn?!0:t instanceof Gn?wb(t.definition,n=>fm(n,e)):t instanceof Sn&&ci(e,t)?!1:t instanceof Jo?(t instanceof Sn&&e.push(t),is(t.definition,n=>fm(n,e))):!1}function LF(t){return t instanceof Gn}function ko(t){if(t instanceof Sn)return"SUBRULE";if(t instanceof Cn)return"OPTION";if(t instanceof Gn)return"OR";if(t instanceof jn)return"AT_LEAST_ONE";if(t instanceof Xn)return"AT_LEAST_ONE_SEP";if(t instanceof zn)return"MANY_SEP";if(t instanceof Jr)return"MANY";if(t instanceof Yr)return"CONSUME";throw Error("non exhaustive match")}var S1e=O(()=>{"use strict";rr();n6();o(RF,"isSequenceProd");o(fm,"isOptionalProd");o(LF,"isBranchingProd");o(ko,"getProductionDslName")});var zs=O(()=>{"use strict";n6();E1e();S1e()});function C1e(t,e,r){return[new Cn({definition:[new Yr({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Hh,i6=O(()=>{"use strict";rr();zs();Hh=class{static{o(this,"RestWalker")}walk(e,r=[]){Oe(e.definition,(n,i)=>{let a=Pi(e.definition,i+1);if(n instanceof Sn)this.walkProdRef(n,a,r);else if(n instanceof Yr)this.walkTerminal(n,a,r);else if(n instanceof Yn)this.walkFlat(n,a,r);else if(n instanceof Cn)this.walkOption(n,a,r);else if(n instanceof jn)this.walkAtLeastOne(n,a,r);else if(n instanceof Xn)this.walkAtLeastOneSep(n,a,r);else if(n instanceof zn)this.walkManySep(n,a,r);else if(n instanceof Jr)this.walkMany(n,a,r);else if(n instanceof Gn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new Cn({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=C1e(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new Cn({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=C1e(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Oe(e.definition,a=>{let s=new Yn({definition:[a]});this.walk(s,i)})}};o(C1e,"restForRepetitionWithSeparator")});function dm(t){if(t instanceof Sn)return dm(t.referencedRule);if(t instanceof Yr)return nrt(t);if(RF(t))return trt(t);if(LF(t))return rrt(t);throw Error("non exhaustive match")}function trt(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=fm(a),e=e.concat(dm(a)),n=n+1,i=r.length>n;return P1(e)}function rrt(t){let e=lt(t.definition,r=>dm(r));return P1(fn(e))}function nrt(t){return[t.terminalType]}var NF=O(()=>{"use strict";rr();zs();o(dm,"first");o(trt,"firstForSequence");o(rrt,"firstForBranching");o(nrt,"firstForTerminal")});var a6,MF=O(()=>{"use strict";a6="_~IN~_"});function A1e(t){let e={};return Oe(t,r=>{let n=new IF(r).startWalking();$a(e,n)}),e}function irt(t,e){return t.name+e+a6}var IF,_1e=O(()=>{"use strict";i6();NF();rr();MF();zs();IF=class extends Hh{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=irt(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Yn({definition:a}),l=dm(s);this.follows[i]=l}};o(A1e,"computeAllProdsFollows");o(irt,"buildBetweenProdsFollowPrefix")});function _y(t){let e=t.toString();if(s6.hasOwnProperty(e))return s6[e];{let r=art.pattern(e);return s6[e]=r,r}}function D1e(){s6={}}var s6,art,o6=O(()=>{"use strict";_T();s6={},art=new um;o(_y,"getRegExpAst");o(D1e,"clearRegExpParserCache")});function N1e(t,e=!1){try{let r=_y(t);return OF(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===L1e)e&&MT(`${PT} Unable to optimize: < ${t.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Sy(`${PT} + Failed parsing: < ${t.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function OF(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")l6(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)l6(f,e,r);else{for(let f=h.from;f<=h.to&&f=Dy){let f=h.from>=Dy?h.from:Dy,d=h.to,p=Bu(f),m=Bu(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":OF(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&PF(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return Gr(e)}function l6(t,e,r){let n=Bu(t);e[n]=n,r===!0&&srt(t,e)}function srt(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Bu(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Bu(i.charCodeAt(0));e[a]=a}}}function R1e(t,e){return Ls(t.value,r=>{if(typeof r=="number")return ci(e,r);{let n=r;return Ls(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function PF(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?zt(t.value)?is(t.value,PF):PF(t.value):!1}function c6(t,e){if(e instanceof RegExp){let r=_y(e),n=new BF(t);return n.visit(r),n.found}else return Ls(e,r=>ci(t,r.charCodeAt(0)))!==void 0}var L1e,PT,BF,M1e=O(()=>{"use strict";_T();rr();Cy();o6();FF();L1e="Complement Sets are not supported for first char optimization",PT=`Unable to use "first char" lexer optimizations: +`;o(N1e,"getOptimizedStartCodesIndices");o(OF,"firstCharOptimizedIndices");o(l6,"addOptimizedIdxToResult");o(srt,"handleIgnoreCase");o(R1e,"findCode");o(PF,"isWholeOptional");BF=class extends Pu{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){ci(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?R1e(e,this.targetCharCodes)===void 0&&(this.found=!0):R1e(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(c6,"canMatchCharCode")});function P1e(t,e){e=ad(e,{useSticky:zF,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,T)=>T(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{Srt()});let n;r("Reject Lexer.NA",()=>{n=od(t,b=>b[pm]===fi.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=lt(n,b=>{let T=b[pm];if(Al(T)){let E=T.source;return E.length===1&&E!=="^"&&E!=="$"&&E!=="."&&!T.ignoreCase?E:E.length===2&&E[0]==="\\"&&!ci(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],E[1])?E[1]:e.useSticky?O1e(T):I1e(T)}else{if(Vi(T))return i=!0,{exec:T};if(typeof T=="object")return i=!0,T;if(typeof T=="string"){if(T.length===1)return T;{let E=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),w=new RegExp(E);return e.useSticky?O1e(w):I1e(w)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=lt(n,b=>b.tokenTypeIdx),l=lt(n,b=>{let T=b.GROUP;if(T!==fi.SKIPPED){if(Bi(T))return T;if(Dr(T))return!1;throw Error("non exhaustive match")}}),u=lt(n,b=>{let T=b.LONGER_ALT;if(T)return zt(T)?lt(T,w=>sS(n,w)):[sS(n,T)]}),h=lt(n,b=>b.PUSH_MODE),f=lt(n,b=>Gt(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=U1e(e.lineTerminatorCharacters);d=lt(n,T=>!1),e.positionTracking!=="onlyOffset"&&(d=lt(n,T=>Gt(T,"LINE_BREAKS")?!!T.LINE_BREAKS:q1e(T,b)===!1&&c6(b,T.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=lt(n,G1e),m=lt(a,krt),g=pn(n,(b,T)=>{let E=T.GROUP;return Bi(E)&&E!==fi.SKIPPED&&(b[E]=[]),b},{}),y=lt(a,(b,T)=>({pattern:a[T],longerAlt:u[T],canLineTerminator:d[T],isCustom:p[T],short:m[T],group:l[T],push:h[T],pop:f[T],tokenTypeIdx:s[T],tokenType:n[T]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=pn(n,(b,T,E)=>{if(typeof T.PATTERN=="string"){let w=T.PATTERN.charCodeAt(0),k=Bu(w);$F(b,k,y[E])}else if(zt(T.START_CHARS_HINT)){let w;Oe(T.START_CHARS_HINT,k=>{let S=typeof k=="string"?k.charCodeAt(0):k,A=Bu(S);w!==A&&(w=A,$F(b,A,y[E]))})}else if(Al(T.PATTERN))if(T.PATTERN.unicode)v=!1,e.ensureOptimizations&&Sy(`${PT} Unable to analyze < ${T.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let w=N1e(T.PATTERN,e.ensureOptimizations);Er(w)&&(v=!1),Oe(w,k=>{$F(b,k,y[E])})}else e.ensureOptimizations&&Sy(`${PT} TokenType: <${T.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function B1e(t,e){let r=[],n=lrt(t);r=r.concat(n.errors);let i=crt(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(ort(a)),r=r.concat(yrt(a)),r=r.concat(vrt(a,e)),r=r.concat(xrt(a)),r}function ort(t){let e=[],r=dn(t,n=>Al(n[pm]));return e=e.concat(hrt(r)),e=e.concat(prt(r)),e=e.concat(mrt(r)),e=e.concat(grt(r)),e=e.concat(frt(r)),e}function lrt(t){let e=dn(t,i=>!Gt(i,pm)),r=lt(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:hi.MISSING_PATTERN,tokenTypes:[i]})),n=sd(t,e);return{errors:r,valid:n}}function crt(t){let e=dn(t,i=>{let a=i[pm];return!Al(a)&&!Vi(a)&&!Gt(a,"exec")&&!Bi(a)}),r=lt(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:hi.INVALID_PATTERN,tokenTypes:[i]})),n=sd(t,e);return{errors:r,valid:n}}function hrt(t){class e extends Pu{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=dn(t,i=>{let a=i.PATTERN;try{let s=_y(a),l=new e;return l.visit(s),l.found}catch{return urt.test(a.source)}});return lt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:hi.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function frt(t){let e=dn(t,n=>n.PATTERN.test(""));return lt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:hi.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function prt(t){class e extends Pu{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=dn(t,i=>{let a=i.PATTERN;try{let s=_y(a),l=new e;return l.visit(s),l.found}catch{return drt.test(a.source)}});return lt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:hi.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function mrt(t){let e=dn(t,n=>{let i=n[pm];return i instanceof RegExp&&(i.multiline||i.global)});return lt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:hi.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function grt(t){let e=[],r=lt(t,a=>pn(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!ci(e,l)&&l.PATTERN!==fi.NA&&(e.push(l),s.push(l)),s),[]));r=xu(r);let n=dn(r,a=>a.length>1);return lt(n,a=>{let s=lt(a,u=>u.name);return{message:`The same RegExp pattern ->${Ta(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:hi.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function yrt(t){let e=dn(t,n=>{if(!Gt(n,"GROUP"))return!1;let i=n.GROUP;return i!==fi.SKIPPED&&i!==fi.NA&&!Bi(i)});return lt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:hi.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function vrt(t,e){let r=dn(t,i=>i.PUSH_MODE!==void 0&&!ci(e,i.PUSH_MODE));return lt(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:hi.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function xrt(t){let e=[],r=pn(t,(n,i,a)=>{let s=i.PATTERN;return s===fi.NA||(Bi(s)?n.push({str:s,idx:a,tokenType:i}):Al(s)&&Trt(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Oe(t,(n,i)=>{Oe(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:hi.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function brt(t,e){if(Al(e)){if(wrt(e))return!1;let r=e.exec(t);return r!==null&&r.index===0}else{if(Vi(e))return e(t,0,[],{});if(Gt(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function Trt(t){return Ls([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function wrt(t){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\? property in its definition +`,type:hi.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Gt(t,u6)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+u6+`> property in its definition +`,type:hi.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Gt(t,u6)&&Gt(t,Ry)&&!Gt(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${Ry}: <${t.defaultMode}>which does not exist +`,type:hi.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Gt(t,u6)&&Oe(t.modes,(i,a)=>{Oe(i,(s,l)=>{if(Dr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:hi.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(Gt(s,"LONGER_ALT")){let u=zt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Oe(u,h=>{!Dr(h)&&!ci(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:hi.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function $1e(t,e,r){let n=[],i=!1,a=xu(fn(Gr(t.modes))),s=od(a,u=>u[pm]===fi.NA),l=U1e(r);return e&&Oe(s,u=>{let h=q1e(u,l);if(h!==!1){let d={message:Ert(u,h),type:h.issue,tokenType:u};n.push(d)}else Gt(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):c6(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:hi.NO_LINE_BREAKS_FLAGS}),n}function z1e(t){let e={},r=nn(t);return Oe(r,n=>{let i=t[n];if(zt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function G1e(t){let e=t.PATTERN;if(Al(e))return!1;if(Vi(e))return!0;if(Gt(e,"exec"))return!0;if(Bi(e))return!1;throw Error("non exhaustive match")}function krt(t){return Bi(t)&&t.length===1?t.charCodeAt(0):!1}function q1e(t,e){if(Gt(t,"LINE_BREAKS"))return!1;if(Al(t.PATTERN)){try{c6(e,t.PATTERN)}catch(r){return{issue:hi.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(Bi(t.PATTERN))return!1;if(G1e(t))return{issue:hi.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function Ert(t,e){if(e.issue===hi.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${t.name}> Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===hi.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${t.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function U1e(t){return lt(t,r=>Bi(r)?r.charCodeAt(0):r)}function $F(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Bu(t){return t255?255+~~(t/255):t}}var pm,Ry,u6,zF,urt,drt,V1e,Dy,h6,FF=O(()=>{"use strict";_T();BT();rr();Cy();M1e();o6();pm="PATTERN",Ry="defaultMode",u6="modes",zF=typeof new RegExp("(?:)").sticky=="boolean";o(P1e,"analyzeTokenTypes");o(B1e,"validatePatterns");o(ort,"validateRegExpPattern");o(lrt,"findMissingPatterns");o(crt,"findInvalidPatterns");urt=/[^\\][$]/;o(hrt,"findEndOfInputAnchor");o(frt,"findEmptyMatchRegExps");drt=/[^\\[][\^]|^\^/;o(prt,"findStartOfInputAnchor");o(mrt,"findUnsupportedFlags");o(grt,"findDuplicatePatterns");o(yrt,"findInvalidGroupType");o(vrt,"findModesThatDoNotExist");o(xrt,"findUnreachablePatterns");o(brt,"tryToMatchStrToPattern");o(Trt,"noMetaChar");o(wrt,"usesLookAheadOrBehind");o(I1e,"addStartOfInput");o(O1e,"addStickyFlag");o(F1e,"performRuntimeChecks");o($1e,"performWarningRuntimeChecks");o(z1e,"cloneEmptyGroups");o(G1e,"isCustomPattern");o(krt,"isShortPattern");V1e={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function Crt(t){let e=Tn(t),r=t,n=!0;for(;n;){r=xu(fn(lt(r,a=>a.CATEGORIES)));let i=sd(r,e);e=e.concat(i),Er(i)?n=!1:r=i}return e}function Art(t){Oe(t,e=>{GF(e)||(Y1e[W1e]=e,e.tokenTypeIdx=W1e++),H1e(e)&&!zt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),H1e(e)||(e.CATEGORIES=[]),Rrt(e)||(e.categoryMatches=[]),Lrt(e)||(e.categoryMatchesMap={})})}function _rt(t){Oe(t,e=>{e.categoryMatches=[],Oe(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(Y1e[n].tokenTypeIdx)})})}function Drt(t){Oe(t,e=>{j1e([],e)})}function j1e(t,e){Oe(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Oe(e.CATEGORIES,r=>{let n=t.concat(e);ci(n,r)||j1e(n,r)})}function GF(t){return Gt(t,"tokenTypeIdx")}function H1e(t){return Gt(t,"CATEGORIES")}function Rrt(t){return Gt(t,"categoryMatches")}function Lrt(t){return Gt(t,"categoryMatchesMap")}function X1e(t){return Gt(t,"tokenTypeIdx")}var W1e,Y1e,mm=O(()=>{"use strict";rr();o(Yh,"tokenStructuredMatcher");o(Ly,"tokenStructuredMatcherNoCategories");W1e=1,Y1e={};o(jh,"augmentTokenTypes");o(Crt,"expandCategories");o(Art,"assignTokenDefaultProps");o(_rt,"assignCategoriesTokensProp");o(Drt,"assignCategoriesMapProp");o(j1e,"singleAssignCategoriesToksMap");o(GF,"hasShortKeyProperty");o(H1e,"hasCategoriesProperty");o(Rrt,"hasExtendingTokensTypesProperty");o(Lrt,"hasExtendingTokensTypesMapProperty");o(X1e,"isTokenType")});var Ny,VF=O(()=>{"use strict";Ny={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i,a){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var hi,FT,fi,BT=O(()=>{"use strict";FF();rr();Cy();mm();VF();o6();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(hi||(hi={}));FT={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Ny,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(FT);fi=class{static{o(this,"Lexer")}constructor(e,r=FT){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=IT(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=$a({},FT,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===FT.lineTerminatorsPattern)this.config.lineTerminatorsPattern=V1e;else if(this.config.lineTerminatorCharacters===FT.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),zt(e)?i={modes:{defaultMode:Tn(e)},defaultMode:Ry}:(a=!1,i=Tn(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(F1e(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat($1e(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Oe(i.modes,(l,u)=>{i.modes[u]=od(l,h=>Dr(h))});let s=nn(i.modes);if(Oe(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(B1e(l,s))}),Er(this.lexerDefinitionErrors)){jh(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=P1e(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=$a({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!Er(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=lt(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Oe(this.lexerDefinitionWarning,l=>{MT(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(zF?(this.chopInput=va,this.match=this.matchWithTest):(this.updateLastIndex=ki,this.match=this.matchWithExec),a&&(this.handleModes=ki),this.trackStartLines===!1&&(this.computeNewColumn=va),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ki),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=pn(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!Er(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{D1e()}),this.TRACE_INIT("toFastProperties",()=>{OT(this)})})}tokenize(e,r=this.defaultMode){if(!Er(this.lexerDefinitionErrors)){let i=lt(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,T=e,E=T.length,w=0,k=0,S=this.hasCustom?0:Math.floor(e.length/10),A=new Array(S),L=[],I=this.trackStartLines?1:void 0,N=this.trackStartLines?1:void 0,C=z1e(this.emptyGroups),_=this.trackStartLines,D=this.config.lineTerminatorsPattern,M=0,R=[],P=[],B=[],F=[];Object.freeze(F);let G;function $(){return R}o($,"getPossiblePatternsSlow");function V(Y){let le=Bu(Y),ee=P[le];return ee===void 0?F:ee}o(V,"getPossiblePatternsOptimized");let X=o(Y=>{if(B.length===1&&Y.tokenType.PUSH_MODE===void 0){let le=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Y);L.push({offset:Y.startOffset,line:Y.startLine,column:Y.startColumn,length:Y.image.length,message:le})}else{B.pop();let le=ba(B);R=this.patternIdxToConfig[le],P=this.charCodeToPatternIdxToConfig[le],M=R.length;let ee=this.canModeBeOptimized[le]&&this.config.safeMode===!1;P&&ee?G=V:G=$}},"pop_mode");function Q(Y){B.push(Y),P=this.charCodeToPatternIdxToConfig[Y],R=this.patternIdxToConfig[Y],M=R.length,M=R.length;let le=this.canModeBeOptimized[Y]&&this.config.safeMode===!1;P&&le?G=V:G=$}o(Q,"push_mode"),Q.call(this,r);let H,ie=this.config.recoveryEnabled;for(;wu.length){u=s,h=f,H=xe;break}}}break}}if(u!==null){if(d=u.length,p=H.group,p!==void 0&&(m=H.tokenTypeIdx,g=this.createTokenInstance(u,w,m,H.tokenType,I,N,d),this.handlePayload(g,h),p===!1?k=this.addToken(A,k,g):C[p].push(g)),e=this.chopInput(e,d),w=w+d,N=this.computeNewColumn(N,d),_===!0&&H.canLineTerminator===!0){let J=0,te,Z;D.lastIndex=0;do te=D.test(u),te===!0&&(Z=D.lastIndex-1,J++);while(te===!0);J!==0&&(I=I+J,N=d-Z,this.updateTokenEndLineColumnLocation(g,p,Z,J,I,N,d))}this.handleModes(H,X,Q,g)}else{let J=w,te=I,Z=N,xe=ie===!1;for(;xe===!1&&w{"use strict";rr();BT();mm();o(Xh,"tokenLabel");o(qF,"hasTokenLabel");Nrt="parent",K1e="categories",Q1e="label",Z1e="group",J1e="push_mode",eye="pop_mode",tye="longer_alt",rye="line_breaks",nye="start_chars_hint";o(Ud,"createToken");o(Mrt,"createTokenInternal");el=Ud({name:"EOF",pattern:fi.NA});jh([el]);o(Kh,"createTokenInstance");o($T,"tokenMatcher")});var Qh,iye,Lc,My=O(()=>{"use strict";gm();rr();zs();Qh={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${qF(t)?`--> ${Xh(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+Ta(e).image+"'";if(n)return a+n+l;{let u=pn(t,(p,m)=>p.concat(m),[]),h=lt(u,p=>`[${lt(p,m=>Xh(m)).join(", ")}]`),d=`one of these possible Token sequences: +${lt(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+Ta(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${lt(t,h=>`[${lt(h,f=>Xh(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Qh);iye={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-"}},Lc={buildDuplicateFoundError(t,e){function r(f){return f instanceof Yr?f.terminalType.name:f instanceof Sn?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=Ta(e),a=i.idx,s=ko(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=lt(t.prefixPath,i=>Xh(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(t){let e=lt(t.prefixPath,i=>Xh(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(t){let e=ko(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: + inside <${t.topLevelRule.name}> Rule. + has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=lt(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof Fs?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function aye(t,e){let r=new UF(t,e);return r.resolveRefs(),r.errors}var UF,sye=O(()=>{"use strict";Eo();rr();zs();o(aye,"resolveGrammar");UF=class extends $s{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Oe(Gr(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:la.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function m6(t,e,r=[]){r=Tn(r);let n=[],i=0;function a(l){return l.concat(Pi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=m6(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{Er(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof Yr)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:Pi(t,i)}),n}function g6(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!Er(d);){let p=d.pop();if(p===s){l&&ba(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(Er(m))continue;let x=m[0];if(x===i){let b={idx:g,def:Pi(m),ruleStack:Nh(y),occurrenceStack:Nh(v)};d.push(b)}else if(x instanceof Yr)if(g=0;b--){let T=x.definition[b],E={idx:g,def:T.definition.concat(Pi(m)),ruleStack:y,occurrenceStack:v};d.push(E),d.push(s)}else if(x instanceof Yn)d.push({idx:g,def:x.definition.concat(Pi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof Fs)d.push(Irt(x,g,y,v));else throw Error("non exhaustive match")}return f}function Irt(t,e,r,n){let i=Tn(r);i.push(t.name);let a=Tn(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var WF,f6,Iy,d6,zT,p6,GT,VT=O(()=>{"use strict";rr();NF();i6();zs();WF=class extends Hh{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=Tn(this.path.ruleStack).reverse(),this.occurrenceStack=Tn(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){Er(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},f6=class extends WF{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Yn({definition:i});this.possibleTokTypes=dm(a),this.found=!0}}},Iy=class extends Hh{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},d6=class extends Iy{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},zT=class extends Iy{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},p6=class extends Iy{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},GT=class extends Iy{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(m6,"possiblePathsFrom");o(g6,"nextPossibleTokensAfter");o(Irt,"expandTopLevelRule")});function qT(t){if(t instanceof Cn||t==="Option")return di.OPTION;if(t instanceof Jr||t==="Repetition")return di.REPETITION;if(t instanceof jn||t==="RepetitionMandatory")return di.REPETITION_MANDATORY;if(t instanceof Xn||t==="RepetitionMandatoryWithSeparator")return di.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof zn||t==="RepetitionWithSeparator")return di.REPETITION_WITH_SEPARATOR;if(t instanceof Gn||t==="Alternation")return di.ALTERNATION;throw Error("non exhaustive match")}function v6(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=qT(n);return a===di.ALTERNATION?Oy(e,r,i):Py(e,r,a,i)}function lye(t,e,r,n,i,a){let s=Oy(t,e,r),l=pye(s)?Ly:Yh;return a(s,n,l,i)}function cye(t,e,r,n,i,a){let s=Py(t,e,i,r),l=pye(s)?Ly:Yh;return a(s[0],l,n)}function uye(t,e,r,n){let i=t.length,a=is(t,s=>is(s,l=>l.length===1));if(e)return function(s){let l=lt(s,u=>u.GATE);for(let u=0;ufn(u)),l=pn(s,(u,h,f)=>(Oe(h,d=>{Gt(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Oe(d.categoryMatches,p=>{Gt(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=t.length;if(n&&!r){let a=fn(t);if(a.length===1&&Er(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=pn(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Oe(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;am6([s],1)),n=oye(r.length),i=lt(r,s=>{let l={};return Oe(s,u=>{let h=HF(u.partialPath);Oe(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=oye(l.length);for(let u=0;u{let x=HF(v.partialPath);Oe(x,b=>{i[u][b]=!0})})}}}}return n}function Oy(t,e,r,n){let i=new y6(t,di.ALTERNATION,n);return e.accept(i),fye(i.result,r)}function Py(t,e,r,n){let i=new y6(t,r);e.accept(i);let a=i.result,l=new YF(e,t,r).startWalking(),u=new Yn({definition:a}),h=new Yn({definition:l});return fye([u,h],n)}function x6(t,e){e:for(let r=0;r{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function pye(t){return is(t,e=>is(e,r=>is(r,n=>Er(n.categoryMatches))))}var di,YF,y6,By=O(()=>{"use strict";rr();VT();i6();mm();zs();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(di||(di={}));o(qT,"getProdType");o(v6,"getLookaheadPaths");o(lye,"buildLookaheadFuncForOr");o(cye,"buildLookaheadFuncForOptionalProd");o(uye,"buildAlternativesLookAheadFunc");o(hye,"buildSingleAlternativeLookaheadFunction");YF=class extends Hh{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,di.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,di.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,di.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,di.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,di.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},y6=class extends $s{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,di.OPTION)}visitRepetition(e){this.checkIsTarget(e,di.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,di.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,di.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,di.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,di.ALTERNATION)}};o(oye,"initializeArrayOfArrays");o(HF,"pathToHashKeys");o(Ort,"isUniquePrefixHash");o(fye,"lookAheadSequenceFromAlternatives");o(Oy,"getLookaheadPathsForOr");o(Py,"getLookaheadPathsForOptionalProd");o(x6,"containsPath");o(dye,"isStrictPrefixOfPath");o(pye,"areTokenCategoriesNotUsed")});function mye(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return lt(e,r=>Object.assign({type:la.CUSTOM_LOOKAHEAD_VALIDATION},r))}function gye(t,e,r,n){let i=za(t,u=>Prt(u,r)),a=Vrt(t,e,r),s=za(t,u=>$rt(u,r)),l=za(t,u=>Frt(u,t,n,r));return i.concat(a,s,l)}function Prt(t,e){let r=new jF;t.accept(r);let n=r.allProductions,i=bI(n,Brt),a=go(i,l=>l.length>1);return lt(Gr(a),l=>{let u=Ta(l),h=e.buildDuplicateFoundError(t,l),f=ko(u),d={message:h,type:la.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=yye(u);return p&&(d.parameter=p),d})}function Brt(t){return`${ko(t)}_#_${t.idx}_#_${yye(t)}`}function yye(t){return t instanceof Yr?t.terminalType.name:t instanceof Sn?t.nonTerminalName:""}function Frt(t,e,r,n){let i=[];if(pn(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:la.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function vye(t,e,r){let n=[],i;return ci(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:la.INVALID_RULE_OVERRIDE,ruleName:t})),n}function KF(t,e,r,n=[]){let i=[],a=b6(e.definition);if(Er(a))return[];{let s=t.name;ci(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:la.LEFT_RECURSION,ruleName:s});let u=sd(a,n.concat([t])),h=za(u,f=>{let d=Tn(n);return d.push(f),KF(t,f,r,d)});return i.concat(h)}}function b6(t){let e=[];if(Er(t))return e;let r=Ta(t);if(r instanceof Sn)e.push(r.referencedRule);else if(r instanceof Yn||r instanceof Cn||r instanceof jn||r instanceof Xn||r instanceof zn||r instanceof Jr)e=e.concat(b6(r.definition));else if(r instanceof Gn)e=fn(lt(r.definition,a=>b6(a.definition)));else if(!(r instanceof Yr))throw Error("non exhaustive match");let n=fm(r),i=t.length>1;if(n&&i){let a=Pi(t);return e.concat(b6(a))}else return e}function xye(t,e){let r=new UT;t.accept(r);let n=r.alternations;return za(n,a=>{let s=Nh(a.definition);return za(s,(l,u)=>{let h=g6([l],[],Yh,1);return Er(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:la.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function bye(t,e,r){let n=new UT;t.accept(n);let i=n.alternations;return i=od(i,s=>s.ignoreAmbiguities===!0),za(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=Oy(l,t,u,s),f=zrt(h,s,t,r),d=Grt(h,s,t,r);return f.concat(d)})}function $rt(t,e){let r=new UT;t.accept(r);let n=r.alternations;return za(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:la.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function Tye(t,e,r){let n=[];return Oe(t,i=>{let a=new XF;i.accept(a);let s=a.allProductions;Oe(s,l=>{let u=qT(l),h=l.maxLookahead||e,f=l.idx,p=Py(f,i,u,h)[0];if(Er(fn(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:la.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function zrt(t,e,r,n){let i=[],a=pn(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Oe(u,f=>{let d=[h];Oe(t,(p,m)=>{h!==m&&x6(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!x6(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return lt(a,l=>{let u=lt(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:la.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function Grt(t,e,r,n){let i=pn(t,(s,l,u)=>{let h=lt(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return xu(za(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=dn(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:la.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function Vrt(t,e,r){let n=[],i=lt(e,a=>a.name);return Oe(t,a=>{let s=a.name;if(ci(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:la.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var jF,UT,XF,WT=O(()=>{"use strict";rr();Eo();zs();By();VT();mm();o(mye,"validateLookahead");o(gye,"validateGrammar");o(Prt,"validateDuplicateProductions");o(Brt,"identifyProductionForDuplicates");o(yye,"getExtraProductionArgument");jF=class extends $s{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(Frt,"validateRuleDoesNotAlreadyExist");o(vye,"validateRuleIsOverridden");o(KF,"validateNoLeftRecursion");o(b6,"getFirstNoneTerminal");UT=class extends $s{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(xye,"validateEmptyOrAlternative");o(bye,"validateAmbiguousAlternationAlternatives");XF=class extends $s{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o($rt,"validateTooManyAlts");o(Tye,"validateSomeNonEmptyLookaheadPath");o(zrt,"checkAlternativesAmbiguities");o(Grt,"checkPrefixAlternativesAmbiguities");o(Vrt,"checkTerminalAndNoneTerminalsNameSpace")});function wye(t){let e=ad(t,{errMsgProvider:iye}),r={};return Oe(t.rules,n=>{r[n.name]=n}),aye(r,e.errMsgProvider)}function kye(t){return t=ad(t,{errMsgProvider:Lc}),gye(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var Eye=O(()=>{"use strict";rr();sye();WT();My();o(wye,"resolveGrammar");o(kye,"validateGrammar")});function Wd(t){return ci(Dye,t.name)}var Sye,Cye,Aye,_ye,Dye,Fy,ym,HT,YT,jT,$y=O(()=>{"use strict";rr();Sye="MismatchedTokenException",Cye="NoViableAltException",Aye="EarlyExitException",_ye="NotAllInputParsedException",Dye=[Sye,Cye,Aye,_ye];Object.freeze(Dye);o(Wd,"isRecognitionException");Fy=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},ym=class extends Fy{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Sye}},HT=class extends Fy{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Cye}},YT=class extends Fy{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=_ye}},jT=class extends Fy{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Aye}}});function qrt(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=el,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var QF,JF,ZF,T6,e$=O(()=>{"use strict";gm();rr();$y();MF();Eo();QF={},JF="InRuleRecoveryException",ZF=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=JF}},T6=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Gt(e,"recoveryEnabled")?e.recoveryEnabled:Gs.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=qrt)}getTokenToInsert(e){let r=Kh(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new ym(m,h,this.LA(0));g.resyncedTokens=Nh(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new ZF("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||Er(r))return!1;let n=this.LA(1);return Ls(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return ci(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=Ls(e,a=>$T(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return QF;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return lt(e,(n,i)=>i===0?QF:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=lt(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return fn(e)}getFollowSetFromFollowKey(e){if(e===QF)return[el];let r=e.ruleName+e.idxInCallingRule+a6+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,el)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Nh(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=Tn(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return lt(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(qrt,"attemptInRepetitionRecovery")});function w6(t,e,r){return r|e|t}var k6=O(()=>{"use strict";o(w6,"getKeyForAutomaticLookahead")});var Zh,t$=O(()=>{"use strict";rr();My();Eo();WT();By();Zh=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:Gs.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(Er(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return za(e,r=>KF(r,r,Lc))}validateEmptyOrAlternatives(e){return za(e,r=>xye(r,Lc))}validateAmbiguousAlternationAlternatives(e,r){return za(e,n=>bye(n,r,Lc))}validateSomeNonEmptyLookaheadPath(e,r){return Tye(e,r,Lc)}buildLookaheadForAlternation(e){return lye(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,uye)}buildLookaheadForOptional(e){return cye(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,qT(e.prodType),hye)}}});function Urt(t){E6.reset(),t.accept(E6);let e=E6.dslMethods;return E6.reset(),e}var S6,r$,E6,Rye=O(()=>{"use strict";rr();Eo();k6();zs();t$();S6=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=Gt(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Gs.dynamicTokensEnabled,this.maxLookahead=Gt(e,"maxLookahead")?e.maxLookahead:Gs.maxLookahead,this.lookaheadStrategy=Gt(e,"lookaheadStrategy")?e.lookaheadStrategy:new Zh({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Oe(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=Urt(r);Oe(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${ko(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=w6(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Oe(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,ko(h))}),Oe(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,ko(h))}),Oe(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,ko(h))}),Oe(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,ko(h))}),Oe(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,ko(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=w6(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return w6(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},r$=class extends $s{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},E6=new r$;o(Urt,"collectMethods")});function a$(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";o(a$,"setNodeLocationOnlyOffset");o(s$,"setNodeLocationFull");o(Lye,"addTerminalToCst");o(Nye,"addNoneTerminalToCst")});function o$(t,e){Object.defineProperty(t,Wrt,{enumerable:!1,configurable:!0,writable:!1,value:e})}var Wrt,Iye=O(()=>{"use strict";Wrt="name";o(o$,"defineNameProp")});function Hrt(t,e){let r=nn(t),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function Pye(t,e,r){let n=o(function(){},"derivedConstructor");o$(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Oe(e,a=>{i[a]=Hrt}),n.prototype=i,n.prototype.constructor=n,n}function Yrt(t,e){return jrt(t,e)}function jrt(t,e){let r=dn(e,i=>Vi(t[i])===!1),n=lt(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:l$.MISSING_METHOD,methodName:i}));return xu(n)}var l$,Bye=O(()=>{"use strict";rr();Iye();o(Hrt,"defaultVisit");o(Oye,"createBaseSemanticVisitorConstructor");o(Pye,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(l$||(l$={}));o(Yrt,"validateVisitor");o(jrt,"validateMissingCstMethods")});var D6,Fye=O(()=>{"use strict";Mye();rr();Bye();Eo();D6=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Gt(e,"nodeLocationTracking")?e.nodeLocationTracking:Gs.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ki,this.cstFinallyStateUpdate=ki,this.cstPostTerminal=ki,this.cstPostNonTerminal=ki,this.cstPostRule=ki;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=s$,this.setNodeLocationFromNode=s$,this.cstPostRule=ki,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ki,this.setNodeLocationFromNode=ki,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=a$,this.setNodeLocationFromNode=a$,this.cstPostRule=ki,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ki,this.setNodeLocationFromNode=ki,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ki,this.setNodeLocationFromNode=ki,this.cstPostRule=ki,this.setInitialNodeLocation=ki;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];Lye(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];Nye(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(Dr(this.baseCstVisitorConstructor)){let e=Oye(this.className,nn(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Dr(this.baseCstVisitorWithDefaultsConstructor)){let e=Pye(this.className,nn(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var R6,$ye=O(()=>{"use strict";Eo();R6=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):zy}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?zy:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var L6,zye=O(()=>{"use strict";rr();$y();Eo();My();WT();zs();L6=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=Gy){if(ci(this.definedRulesNames,e)){let s={message:Lc.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:la.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=Gy){let i=vye(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(Wd(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return r6(Gr(this.gastProductionsCache))}}});var N6,Gye=O(()=>{"use strict";rr();k6();$y();By();VT();Eo();e$();gm();mm();N6=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ly,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Gt(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(zt(e)){if(Er(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(zt(e))this.tokensMap=pn(e,(a,s)=>(a[s.name]=s,a),{});else if(Gt(e,"modes")&&is(fn(Gr(e.modes)),X1e)){let a=fn(Gr(e.modes)),s=P1(a);this.tokensMap=pn(s,(l,u)=>(l[u.name]=u,l),{})}else if(On(e))this.tokensMap=Tn(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=el;let n=Gt(e,"modes")?fn(Gr(e.modes)):Gr(e),i=is(n,a=>Er(a.categoryMatches));this.tokenMatcher=i?Ly:Yh,jh(Gr(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Gt(n,"resyncEnabled")?n.resyncEnabled:Gy.resyncEnabled,a=Gt(n,"recoveryValueFunc")?n.recoveryValueFunc:Gy.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(Wd(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,di.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,p6)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,GT],l,1536,e,GT)}else throw this.raiseEarlyExitException(e,di.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,d6,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,zT],l,1280,e,zT)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=zt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new YT(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw Wd(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ym(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===JF?n:a}}else throw n}saveRecogState(){let e=this.errors,r=Tn(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),el)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var M6,Vye=O(()=>{"use strict";$y();rr();By();Eo();M6=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=Gt(e,"errorMessageProvider")?e.errorMessageProvider:Gs.errorMessageProvider}SAVE_ERROR(e){if(Wd(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Tn(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Tn(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=Py(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new jT(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=Oy(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new HT(u,this.LA(1),l))}}});var I6,qye=O(()=>{"use strict";VT();rr();I6=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(Dr(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return g6([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=Ta(e.ruleStack),i=this.getGAstProductions()[r];return new f6(i,e).startWalking()}}});function KT(t,e,r,n=!1){P6(r);let i=ba(this.recordingProdStack),a=Vi(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),Gt(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),B6}function Qrt(t,e){P6(e);let r=ba(this.recordingProdStack),n=zt(t)===!1,i=n===!1?t:t.DEF,a=new Gn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});Gt(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=wb(i,l=>Vi(l.GATE));return a.hasPredicates=s,r.definition.push(a),Oe(i,l=>{let u=new Yn({definition:[]});a.definition.push(u),Gt(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:Gt(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),B6}function Hye(t){return t===0?"":`${t}`}function P6(t){if(t<0||t>Wye){let e=new Error(`Invalid DSL Method idx value: <${t}> + Idx value must be a none negative value smaller than ${Wye+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var B6,Uye,Wye,Yye,jye,Krt,O6,Xye=O(()=>{"use strict";rr();zs();BT();mm();gm();Eo();k6();B6={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(B6);Uye=!0,Wye=Math.pow(2,8)-1,Yye=Ud({name:"RECORDING_PHASE_TOKEN",pattern:fi.NA});jh([Yye]);jye=Kh(Yye,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(jye);Krt={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},O6=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return zy}topLevelRuleRecord(e,r){try{let n=new Fs({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return KT.call(this,Cn,e,r)}atLeastOneInternalRecord(e,r){KT.call(this,jn,r,e)}atLeastOneSepFirstInternalRecord(e,r){KT.call(this,Xn,r,e,Uye)}manyInternalRecord(e,r){KT.call(this,Jr,r,e)}manySepFirstInternalRecord(e,r){KT.call(this,zn,r,e,Uye)}orInternalRecord(e,r){return Qrt.call(this,e,r)}subruleInternalRecord(e,r,n){if(P6(r),!e||Gt(e,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=ba(this.recordingProdStack),a=e.ruleName,s=new Sn({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?Krt:B6}consumeInternalRecord(e,r,n){if(P6(r),!GF(e)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=ba(this.recordingProdStack),a=new Yr({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),jye}};o(KT,"recordProd");o(Qrt,"recordOrProd");o(Hye,"getIdxSuffix");o(P6,"assertMethodIdxIsValid")});var F6,Kye=O(()=>{"use strict";rr();Cy();Eo();F6=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(Gt(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=Gs.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:a}=IT(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Qye(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var Zye=O(()=>{"use strict";o(Qye,"applyMixins")});function $6(t=void 0){return function(){return t}}var zy,Gs,Gy,la,QT,ZT,Eo=O(()=>{"use strict";rr();Cy();_1e();gm();My();Eye();e$();Rye();Fye();$ye();zye();Gye();Vye();qye();Xye();Kye();Zye();WT();zy=Kh(el,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(zy);Gs=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Qh,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Gy=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(la||(la={}));o($6,"EMPTY_ALT");QT=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{OT(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Oe(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=wye({rules:Gr(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(Er(n)&&this.skipValidations===!1){let i=kye({rules:Gr(this.gastProductionsCache),tokenTypes:Gr(this.tokensMap),errMsgProvider:Lc,grammarName:r}),a=mye({lookaheadStrategy:this.lookaheadStrategy,rules:Gr(this.gastProductionsCache),tokenTypes:Gr(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),Er(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=A1e(Gr(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:Gr(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Gr(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!Er(this.definitionErrors))throw e=lt(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),Gt(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=Gt(r,"skipValidations")?r.skipValidations:Gs.skipValidations}};QT.DEFER_DEFINITION_ERRORS_HANDLING=!1;Qye(QT,[T6,S6,D6,R6,N6,L6,M6,I6,O6,F6]);ZT=class extends QT{static{o(this,"EmbeddedActionsParser")}constructor(e,r=Gs){let n=Tn(r);n.outputCst=!1,super(e,n)}}});var Jye=O(()=>{"use strict";zs()});var eve=O(()=>{"use strict"});var tve=O(()=>{"use strict";Jye();eve()});var rve=O(()=>{"use strict";DF()});var Hd=O(()=>{"use strict";DF();Eo();BT();gm();By();t$();My();$y();VF();zs();zs();tve();rve()});function vm(t,e,r){return`${t.name}_${e}_${r}`}function sve(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};int(e,t);let r=t.length;for(let n=0;nove(t,e,s));return Wy(t,e,n,r,...i)}function unt(t,e,r){let n=Ca(t,e,r,{type:Yd});jd(t,n);let i=Wy(t,e,n,r,xm(t,e,r));return hnt(t,e,r,i)}function xm(t,e,r){let n=dn(lt(r.definition,i=>ove(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:dnt(t,n)}function lve(t,e,r,n,i){let a=n.left,s=n.right,l=Ca(t,e,r,{type:nnt});jd(t,l);let u=Ca(t,e,r,{type:ave});return a.loopback=l,u.loopback=l,t.decisionMap[vm(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Hi(s,l),i===void 0?(Hi(l,a),Hi(l,u)):(Hi(l,u),Hi(l,i.left),Hi(i.right,a)),{left:a,right:u}}function cve(t,e,r,n,i){let a=n.left,s=n.right,l=Ca(t,e,r,{type:rnt});jd(t,l);let u=Ca(t,e,r,{type:ave}),h=Ca(t,e,r,{type:tnt});return l.loopback=h,u.loopback=h,Hi(l,a),Hi(l,u),Hi(s,h),i!==void 0?(Hi(h,u),Hi(h,i.left),Hi(i.right,a)):Hi(h,l),t.decisionMap[vm(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function hnt(t,e,r,n){let i=n.left,a=n.right;return Hi(i,a),t.decisionMap[vm(e,"Option",r.idx)]=i,n}function jd(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function Wy(t,e,r,n,...i){let a=Ca(t,e,n,{type:ent,start:r});r.end=a;for(let l of i)l!==void 0?(Hi(r,l.left),Hi(l.right,a)):Hi(r,a);let s={left:r,right:a};return t.decisionMap[vm(e,fnt(n),n.idx)]=r,s}function fnt(t){if(t instanceof Gn)return"Alternation";if(t instanceof Cn)return"Option";if(t instanceof Jr)return"Repetition";if(t instanceof zn)return"RepetitionWithSeparator";if(t instanceof jn)return"RepetitionMandatory";if(t instanceof Xn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function dnt(t,e){let r=e.length;for(let a=0;a{"use strict";M1();mI();Hd();o(vm,"buildATNKey");Yd=1,Jrt=2,nve=4,ive=5,Uy=7,ent=8,tnt=9,rnt=10,nnt=11,ave=12,JT=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},Vy=class extends JT{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},e4=class extends JT{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},qy=class extends JT{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(sve,"createATN");o(int,"createRuleStartAndStopATNStates");o(ove,"atom");o(ant,"repetition");o(snt,"repetitionSep");o(ont,"repetitionMandatory");o(lnt,"repetitionMandatorySep");o(cnt,"alternation");o(unt,"option");o(xm,"block");o(lve,"plus");o(cve,"star");o(hnt,"optional");o(jd,"defineDecisionState");o(Wy,"makeAlts");o(fnt,"getProdType");o(dnt,"makeBlock");o(u$,"tokenRef");o(pnt,"ruleRef");o(mnt,"buildRuleHandle");o(Hi,"epsilon");o(Ca,"newState");o(h$,"addTransition");o(gnt,"removeState")});function f$(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var t4,Hy,hve=O(()=>{"use strict";M1();t4={},Hy=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=f$(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return lt(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(f$,"getATNConfigKey")});function ynt(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function dve(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function vnt(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;nXh(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${knt(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function knt(t){if(t instanceof Sn)return"SUBRULE";if(t instanceof Cn)return"OPTION";if(t instanceof Gn)return"OR";if(t instanceof jn)return"AT_LEAST_ONE";if(t instanceof Xn)return"AT_LEAST_ONE_SEP";if(t instanceof zn)return"MANY_SEP";if(t instanceof Jr)return"MANY";if(t instanceof Yr)return"CONSUME";throw Error("non exhaustive match")}function Ent(t,e,r){let n=za(e.configs.elements,a=>a.state.transitions),i=phe(n.filter(a=>a instanceof Vy).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function Snt(t,e){return t.edges[e.tokenTypeIdx]}function Cnt(t,e,r){let n=new Hy,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===Uy){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!Lnt(a))for(let s of i)a.add(s);return a}function Ant(t,e){if(t instanceof Vy&&$T(e,t.tokenType))return t.target}function _nt(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function mve(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function pve(t,e,r,n){return n=gve(t,n),e.edges[r.tokenTypeIdx]=n,n}function gve(t,e){if(e===t4)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function Dnt(t){let e=new Hy,r=t.transitions.length;for(let n=0;n0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};G6(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function Pnt(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var z6,fve,r4,yve=O(()=>{"use strict";Hd();uve();hve();kI();yI();mhe();M1();AE();rS();oS();AI();o(ynt,"createDFACache");z6=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;nconsole.log(n))}initialize(e){this.atn=sve(e.rules),this.dfas=vnt(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=vm(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=lt(v6({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>lt(p,m=>m[0]));if(dve(d,!1)&&!a){let p=pn(d,(m,g,y)=>(Oe(g,v=>{v&&(m[v.tokenTypeIdx]=y,Oe(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new z6,g=p===void 0?0:p.length;for(let v=0;vlt(p,m=>m[0]));if(dve(d)&&d[0][0]&&!a){let p=d[0],m=fn(p);if(m.length===1&&Er(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=pn(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Oe(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=d$.call(this,s,f,fve,l);return typeof p=="object"?!1:p===0}}};o(dve,"isLL1Sequence");o(vnt,"initATNSimulator");o(d$,"adaptivePredict");o(xnt,"performLookahead");o(bnt,"computeLookaheadTarget");o(Tnt,"reportLookaheadAmbiguity");o(wnt,"buildAmbiguityError");o(knt,"getProductionDslName");o(Ent,"buildAdaptivePredictError");o(Snt,"getExistingTargetState");o(Cnt,"computeReachSet");o(Ant,"getReachableTarget");o(_nt,"getUniqueAlt");o(mve,"newDFAState");o(pve,"addDFAEdge");o(gve,"addDFAState");o(Dnt,"computeStartState");o(G6,"closure");o(Rnt,"getEpsilonTarget");o(Lnt,"hasConfigInRuleStopState");o(Nnt,"allConfigsInRuleStopStates");o(Mnt,"hasConflictTerminatingPrediction");o(Int,"getConflictingAltSets");o(Ont,"hasConflictingAltSet");o(Pnt,"hasStateAssociatedWithOneAlt")});var vve=O(()=>{"use strict";yve()});var K6={};vr(K6,{AnnotatedTextEdit:()=>Jh,ChangeAnnotation:()=>bm,ChangeAnnotationIdentifier:()=>Wa,CodeAction:()=>j$,CodeActionContext:()=>Y$,CodeActionKind:()=>H$,CodeActionTriggerKind:()=>c4,CodeDescription:()=>k$,CodeLens:()=>X$,Color:()=>q6,ColorInformation:()=>y$,ColorPresentation:()=>v$,Command:()=>Tm,CompletionItem:()=>I$,CompletionItemKind:()=>_$,CompletionItemLabelDetails:()=>M$,CompletionItemTag:()=>R$,CompletionList:()=>O$,CreateFile:()=>jy,DeleteFile:()=>Ky,Diagnostic:()=>a4,DiagnosticRelatedInformation:()=>U6,DiagnosticSeverity:()=>T$,DiagnosticTag:()=>w$,DocumentHighlight:()=>z$,DocumentHighlightKind:()=>$$,DocumentLink:()=>Q$,DocumentSymbol:()=>W$,DocumentUri:()=>p$,EOL:()=>Bnt,FoldingRange:()=>b$,FoldingRangeKind:()=>x$,FormattingOptions:()=>K$,Hover:()=>P$,InlayHint:()=>sz,InlayHintKind:()=>j6,InlayHintLabelPart:()=>X6,InlineCompletionContext:()=>fz,InlineCompletionItem:()=>lz,InlineCompletionList:()=>cz,InlineCompletionTriggerKind:()=>uz,InlineValueContext:()=>az,InlineValueEvaluatableExpression:()=>iz,InlineValueText:()=>rz,InlineValueVariableLookup:()=>nz,InsertReplaceEdit:()=>L$,InsertTextFormat:()=>D$,InsertTextMode:()=>N$,Location:()=>i4,LocationLink:()=>g$,MarkedString:()=>l4,MarkupContent:()=>Qy,MarkupKind:()=>Y6,OptionalVersionedTextDocumentIdentifier:()=>o4,ParameterInformation:()=>B$,Position:()=>on,Range:()=>Kr,RenameFile:()=>Xy,SelectedCompletionInfo:()=>hz,SelectionRange:()=>Z$,SemanticTokenModifiers:()=>ez,SemanticTokenTypes:()=>J$,SemanticTokens:()=>tz,SignatureInformation:()=>F$,StringValue:()=>oz,SymbolInformation:()=>q$,SymbolKind:()=>G$,SymbolTag:()=>V$,TextDocument:()=>pz,TextDocumentEdit:()=>s4,TextDocumentIdentifier:()=>S$,TextDocumentItem:()=>A$,TextEdit:()=>Fu,URI:()=>V6,VersionedTextDocumentIdentifier:()=>C$,WorkspaceChange:()=>E$,WorkspaceEdit:()=>W6,WorkspaceFolder:()=>dz,WorkspaceSymbol:()=>U$,integer:()=>m$,uinteger:()=>n4});var p$,V6,m$,n4,on,Kr,i4,g$,q6,y$,v$,x$,b$,U6,T$,w$,k$,a4,Tm,Fu,bm,Wa,Jh,s4,jy,Xy,Ky,W6,Yy,H6,E$,S$,C$,o4,A$,Y6,Qy,_$,D$,R$,L$,N$,M$,I$,O$,l4,P$,B$,F$,$$,z$,G$,V$,q$,U$,W$,H$,c4,Y$,j$,X$,K$,Q$,Z$,J$,ez,tz,rz,nz,iz,az,j6,X6,sz,oz,lz,cz,uz,hz,fz,dz,Bnt,pz,mz,Ye,Zy=O(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(p$||(p$={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(V6||(V6={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(m$||(m$={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(n4||(n4={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=n4.MAX_VALUE),i===Number.MAX_VALUE&&(i=n4.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.uinteger(i.line)&&Ye.uinteger(i.character)}o(r,"is"),t.is=r})(on||(on={}));(function(t){function e(n,i,a,s){if(Ye.uinteger(n)&&Ye.uinteger(i)&&Ye.uinteger(a)&&Ye.uinteger(s))return{start:on.create(n,i),end:on.create(a,s)};if(on.is(n)&&on.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&on.is(i.start)&&on.is(i.end)}o(r,"is"),t.is=r})(Kr||(Kr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.range)&&(Ye.string(i.uri)||Ye.undefined(i.uri))}o(r,"is"),t.is=r})(i4||(i4={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.targetRange)&&Ye.string(i.targetUri)&&Kr.is(i.targetSelectionRange)&&(Kr.is(i.originSelectionRange)||Ye.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(g$||(g$={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.numberRange(i.red,0,1)&&Ye.numberRange(i.green,0,1)&&Ye.numberRange(i.blue,0,1)&&Ye.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(q6||(q6={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.range)&&q6.is(i.color)}o(r,"is"),t.is=r})(y$||(y$={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.string(i.label)&&(Ye.undefined(i.textEdit)||Fu.is(i))&&(Ye.undefined(i.additionalTextEdits)||Ye.typedArray(i.additionalTextEdits,Fu.is))}o(r,"is"),t.is=r})(v$||(v$={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(x$||(x$={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Ye.defined(a)&&(h.startCharacter=a),Ye.defined(s)&&(h.endCharacter=s),Ye.defined(l)&&(h.kind=l),Ye.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.uinteger(i.startLine)&&Ye.uinteger(i.startLine)&&(Ye.undefined(i.startCharacter)||Ye.uinteger(i.startCharacter))&&(Ye.undefined(i.endCharacter)||Ye.uinteger(i.endCharacter))&&(Ye.undefined(i.kind)||Ye.string(i.kind))}o(r,"is"),t.is=r})(b$||(b$={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&i4.is(i.location)&&Ye.string(i.message)}o(r,"is"),t.is=r})(U6||(U6={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(T$||(T$={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(w$||(w$={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(n)&&Ye.string(n.href)}o(e,"is"),t.is=e})(k$||(k$={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Ye.defined(a)&&(h.severity=a),Ye.defined(s)&&(h.code=s),Ye.defined(l)&&(h.source=l),Ye.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Ye.defined(a)&&Kr.is(a.range)&&Ye.string(a.message)&&(Ye.number(a.severity)||Ye.undefined(a.severity))&&(Ye.integer(a.code)||Ye.string(a.code)||Ye.undefined(a.code))&&(Ye.undefined(a.codeDescription)||Ye.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Ye.string(a.source)||Ye.undefined(a.source))&&(Ye.undefined(a.relatedInformation)||Ye.typedArray(a.relatedInformation,U6.is))}o(r,"is"),t.is=r})(a4||(a4={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Ye.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.title)&&Ye.string(i.command)}o(r,"is"),t.is=r})(Tm||(Tm={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Ye.objectLiteral(s)&&Ye.string(s.newText)&&Kr.is(s.range)}o(i,"is"),t.is=i})(Fu||(Fu={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.string(i.label)&&(Ye.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Ye.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(bm||(bm={}));(function(t){function e(r){let n=r;return Ye.string(n)}o(e,"is"),t.is=e})(Wa||(Wa={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return Fu.is(s)&&(bm.is(s.annotationId)||Wa.is(s.annotationId))}o(i,"is"),t.is=i})(Jh||(Jh={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&o4.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(s4||(s4={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Ye.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Ye.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ye.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Wa.is(i.annotationId))}o(r,"is"),t.is=r})(jy||(jy={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Ye.string(i.oldUri)&&Ye.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Ye.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ye.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Wa.is(i.annotationId))}o(r,"is"),t.is=r})(Xy||(Xy={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Ye.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Ye.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Ye.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Wa.is(i.annotationId))}o(r,"is"),t.is=r})(Ky||(Ky={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Ye.string(i.kind)?jy.is(i)||Xy.is(i)||Ky.is(i):s4.is(i)))}o(e,"is"),t.is=e})(W6||(W6={}));Yy=class{static{o(this,"TextEditChangeImpl")}constructor(e,r){this.edits=e,this.changeAnnotations=r}insert(e,r,n){let i,a;if(n===void 0?i=Fu.insert(e,r):Wa.is(n)?(a=n,i=Jh.insert(e,r,n)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(n),i=Jh.insert(e,r,a)),this.edits.push(i),a!==void 0)return a}replace(e,r,n){let i,a;if(n===void 0?i=Fu.replace(e,r):Wa.is(n)?(a=n,i=Jh.replace(e,r,n)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(n),i=Jh.replace(e,r,a)),this.edits.push(i),a!==void 0)return a}delete(e,r){let n,i;if(r===void 0?n=Fu.del(e):Wa.is(r)?(i=r,n=Jh.del(e,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),n=Jh.del(e,i)),this.edits.push(n),i!==void 0)return i}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}},H6=class{static{o(this,"ChangeAnnotations")}constructor(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,r){let n;if(Wa.is(e)?n=e:(n=this.nextId(),r=e),this._annotations[n]!==void 0)throw new Error(`Id ${n} is already in use.`);if(r===void 0)throw new Error(`No annotation provided for id ${n}`);return this._annotations[n]=r,this._size++,n}nextId(){return this._counter++,this._counter.toString()}},E$=class{static{o(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new H6(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(r=>{if(s4.is(r)){let n=new Yy(r.edits,this._changeAnnotations);this._textEditChanges[r.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach(r=>{let n=new Yy(e.changes[r]);this._textEditChanges[r]=n})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(o4.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let r={uri:e.uri,version:e.version},n=this._textEditChanges[r.uri];if(!n){let i=[],a={textDocument:r,edits:i};this._workspaceEdit.documentChanges.push(a),n=new Yy(i,this._changeAnnotations),this._textEditChanges[r.uri]=n}return n}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let r=this._textEditChanges[e];if(!r){let n=[];this._workspaceEdit.changes[e]=n,r=new Yy(n),this._textEditChanges[e]=r}return r}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new H6,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let i;bm.is(r)||Wa.is(r)?i=r:n=r;let a,s;if(i===void 0?a=jy.create(e,n):(s=Wa.is(i)?i:this._changeAnnotations.manage(i),a=jy.create(e,n,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}renameFile(e,r,n,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let a;bm.is(n)||Wa.is(n)?a=n:i=n;let s,l;if(a===void 0?s=Xy.create(e,r,i):(l=Wa.is(a)?a:this._changeAnnotations.manage(a),s=Xy.create(e,r,i,l)),this._workspaceEdit.documentChanges.push(s),l!==void 0)return l}deleteFile(e,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let i;bm.is(r)||Wa.is(r)?i=r:n=r;let a,s;if(i===void 0?a=Ky.create(e,n):(s=Wa.is(i)?i:this._changeAnnotations.manage(i),a=Ky.create(e,n,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}};(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)}o(r,"is"),t.is=r})(S$||(S$={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)&&Ye.integer(i.version)}o(r,"is"),t.is=r})(C$||(C$={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)&&(i.version===null||Ye.integer(i.version))}o(r,"is"),t.is=r})(o4||(o4={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)&&Ye.string(i.languageId)&&Ye.integer(i.version)&&Ye.string(i.text)}o(r,"is"),t.is=r})(A$||(A$={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(Y6||(Y6={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(r)&&Y6.is(n.kind)&&Ye.string(n.value)}o(e,"is"),t.is=e})(Qy||(Qy={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(_$||(_$={}));(function(t){t.PlainText=1,t.Snippet=2})(D$||(D$={}));(function(t){t.Deprecated=1})(R$||(R$={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ye.string(i.newText)&&Kr.is(i.insert)&&Kr.is(i.replace)}o(r,"is"),t.is=r})(L$||(L$={}));(function(t){t.asIs=1,t.adjustIndentation=2})(N$||(N$={}));(function(t){function e(r){let n=r;return n&&(Ye.string(n.detail)||n.detail===void 0)&&(Ye.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(M$||(M$={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(I$||(I$={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(O$||(O$={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Ye.string(i)||Ye.objectLiteral(i)&&Ye.string(i.language)&&Ye.string(i.value)}o(r,"is"),t.is=r})(l4||(l4={}));(function(t){function e(r){let n=r;return!!n&&Ye.objectLiteral(n)&&(Qy.is(n.contents)||l4.is(n.contents)||Ye.typedArray(n.contents,l4.is))&&(r.range===void 0||Kr.is(r.range))}o(e,"is"),t.is=e})(P$||(P$={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(B$||(B$={}));(function(t){function e(r,n,...i){let a={label:r};return Ye.defined(n)&&(a.documentation=n),Ye.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(F$||(F$={}));(function(t){t.Text=1,t.Read=2,t.Write=3})($$||($$={}));(function(t){function e(r,n){let i={range:r};return Ye.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(z$||(z$={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(G$||(G$={}));(function(t){t.Deprecated=1})(V$||(V$={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(q$||(q$={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(U$||(U$={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ye.string(i.name)&&Ye.number(i.kind)&&Kr.is(i.range)&&Kr.is(i.selectionRange)&&(i.detail===void 0||Ye.string(i.detail))&&(i.deprecated===void 0||Ye.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(W$||(W$={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(H$||(H$={}));(function(t){t.Invoked=1,t.Automatic=2})(c4||(c4={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.typedArray(i.diagnostics,a4.is)&&(i.only===void 0||Ye.typedArray(i.only,Ye.string))&&(i.triggerKind===void 0||i.triggerKind===c4.Invoked||i.triggerKind===c4.Automatic)}o(r,"is"),t.is=r})(Y$||(Y$={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):Tm.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ye.string(i.title)&&(i.diagnostics===void 0||Ye.typedArray(i.diagnostics,a4.is))&&(i.kind===void 0||Ye.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Tm.is(i.command))&&(i.isPreferred===void 0||Ye.boolean(i.isPreferred))&&(i.edit===void 0||W6.is(i.edit))}o(r,"is"),t.is=r})(j$||(j$={}));(function(t){function e(n,i){let a={range:n};return Ye.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Kr.is(i.range)&&(Ye.undefined(i.command)||Tm.is(i.command))}o(r,"is"),t.is=r})(X$||(X$={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.uinteger(i.tabSize)&&Ye.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(K$||(K$={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Kr.is(i.range)&&(Ye.undefined(i.target)||Ye.string(i.target))}o(r,"is"),t.is=r})(Q$||(Q$={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(Z$||(Z$={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(J$||(J$={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(ez||(ez={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})(tz||(tz={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Kr.is(i.range)&&Ye.string(i.text)}o(r,"is"),t.is=r})(rz||(rz={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Kr.is(i.range)&&Ye.boolean(i.caseSensitiveLookup)&&(Ye.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(nz||(nz={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Kr.is(i.range)&&(Ye.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})(iz||(iz={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Kr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(az||(az={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(j6||(j6={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&(i.tooltip===void 0||Ye.string(i.tooltip)||Qy.is(i.tooltip))&&(i.location===void 0||i4.is(i.location))&&(i.command===void 0||Tm.is(i.command))}o(r,"is"),t.is=r})(X6||(X6={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&on.is(i.position)&&(Ye.string(i.label)||Ye.typedArray(i.label,X6.is))&&(i.kind===void 0||j6.is(i.kind))&&i.textEdits===void 0||Ye.typedArray(i.textEdits,Fu.is)&&(i.tooltip===void 0||Ye.string(i.tooltip)||Qy.is(i.tooltip))&&(i.paddingLeft===void 0||Ye.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Ye.boolean(i.paddingRight))}o(r,"is"),t.is=r})(sz||(sz={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(oz||(oz={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(lz||(lz={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(cz||(cz={}));(function(t){t.Invoked=0,t.Automatic=1})(uz||(uz={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(hz||(hz={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(fz||(fz={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(n)&&V6.is(n.uri)&&Ye.string(n.name)}o(e,"is"),t.is=e})(dz||(dz={}));Bnt=[` +`,`\r +`,"\r"];(function(t){function e(a,s,l,u){return new mz(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Ye.defined(s)&&Ye.string(s.uri)&&(Ye.undefined(s.languageId)||Ye.string(s.languageId))&&Ye.uinteger(s.lineCount)&&Ye.func(s.getText)&&Ye.func(s.positionAt)&&Ye.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return on.create(0,e);for(;ne?i=s:n=s+1}let a=n-1;return on.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Ye||(Ye={}))});var u4,h4,wm,km,gz,Jy,Q6=O(()=>{"use strict";Zy();Sc();u4=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(e){return this.rootNode=new Jy(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new km;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new wm(e.startOffset,e.image.length,by(e),e.tokenType,!r);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}addHiddenNodes(e){let r=[];for(let a of e){let s=new wm(a.startOffset,a.image.length,by(a),a.tokenType,!0);s.root=this.rootNode,r.push(s)}let n=this.current,i=!1;if(n.content.length>0){n.content.push(...r);return}for(;n.container;){let a=n.container.content.indexOf(n);if(a>0){n.container.content.splice(a,0,...r),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...r)}construct(e){let r=this.current;typeof e.$type=="string"&&!e.$infix&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}},h4=class{static{o(this,"AbstractCstNode")}get hidden(){return!1}get astNode(){let e=typeof this._astNode?.$type=="string"?this._astNode:this.container?.astNode;if(!e)throw new Error("This node has no associated AST element");return e}set astNode(e){this._astNode=e}get text(){return this.root.fullText.substring(this.offset,this.end)}},wm=class extends h4{static{o(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,r,n,i,a=!1){super(),this._hidden=a,this._offset=e,this._tokenType=i,this._length=r,this._range=n}},km=class extends h4{static{o(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new gz(this)}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let e=this.firstNonHiddenNode,r=this.lastNonHiddenNode;if(e&&r){if(this._rangeCache===void 0){let{range:n}=e,{range:i}=r;this._rangeCache={start:n.start,end:i.end.line=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},gz=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},Jy=class extends km{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function yz(t){return t.$type===Z6}var Z6,xve,bve,f4,d4,J6,ev,p4,Fnt,eA,vz,m4=O(()=>{"use strict";Zo();Hd();vve();Zo();Rc();us();Q6();Z6=Symbol("Datatype");o(yz,"isDataTypeNode");xve="\u200B",bve=o(t=>t.endsWith(xve)?t:t+xve,"withRuleSuffix"),f4=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition,n=e.LanguageMetaData.mode==="production";e.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new vz(r,{...e.parser.ParserConfig,skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider},e.shared.profilers.LangiumProfiler.createTask("parsing",e.LanguageMetaData.languageId)):this.wrapper=new eA(r,{...e.parser.ParserConfig,skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider})}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},d4=class extends f4{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new u4,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=this.computeRuleType(e),i;Gd(e)&&(i=e.name,this.registerPrecedenceMap(e));let a=this.wrapper.DEFINE_RULE(bve(e.name),this.startImplementation(n,i,r).bind(this));return this.allRules.set(e.name,a),Sa(e)&&e.entry&&(this.mainRule=a),a}registerPrecedenceMap(e){let r=e.name,n=new Map;for(let i=0;i0&&(r=this.construct()),r===void 0)throw new Error("No result from parser");if(this.stack.length>0)throw new Error("Parser stack is not empty after parsing");return r}startImplementation(e,r,n){return i=>{let a=!this.isRecording()&&e!==void 0;if(a){let s={$type:e};this.stack.push(s),e===Z6?s.value="":r!==void 0&&(s.$infixName=r)}return n(i),a?this.construct():void 0}}extractHiddenTokens(e){let r=this.lexerResult.hidden;if(!r.length)return[];let n=e.startOffset;for(let i=0;in)return r.splice(0,i);return r.splice(0,r.length)}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(a);let s=this.nodeBuilder.buildLeafNode(i,n),{assignment:l,crossRef:u}=this.getAssignment(n),h=this.current;if(l){let f=Pl(n)?i.image:this.converter.convert(i.image,s);this.assign(l.operator,l.feature,f,s,u)}else if(yz(h)){let f=i.image;Pl(n)||(f=this.converter.convert(f,s).toString()),h.value+=f}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i,a){let s;!this.isRecording()&&!n&&(s=this.nodeBuilder.buildCompositeNode(i));let l;try{l=this.wrapper.wrapSubrule(e,r,a)}finally{this.isRecording()||(l===void 0&&!n&&(l=this.construct()),l!==void 0&&s&&s.length>0&&this.performSubruleAssignment(l,i,s))}}performSubruleAssignment(e,r,n){let{assignment:i,crossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if(yz(s))s.value+=e.toString();else if(typeof e=="object"&&e){let u=this.assignWithoutOverride(e,s);this.stack.pop(),this.stack.push(u)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(r.feature&&r.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(r).content.push(n.$cstNode);let a={$type:e};this.stack.push(a),this.assign(r.operator,r.feature,n,n.$cstNode)}else n.$type=e}}construct(){if(this.isRecording())return;let e=this.stack.pop();return this.nodeBuilder.construct(e),"$infixName"in e?this.constructInfix(e,this.operatorPrecedence.get(e.$infixName)):yz(e)?this.converter.convert(e.value,e.$cstNode):($B(this.astReflection,e),e)}constructInfix(e,r){let n=e.parts;if(!Array.isArray(n)||n.length===0)return;let i=e.operators;if(!Array.isArray(i)||n.length<2)return n[0];let a=0,s=-1;for(let y=0;ys?(s=x.precedence,a=y):x.precedence===s&&(x.rightAssoc||(a=y))}let l=i.slice(0,a),u=i.slice(a+1),h=n.slice(0,a+1),f=n.slice(a+1),d={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:h,operators:l},p={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:f,operators:u},m=this.constructInfix(d,r),g=this.constructInfix(p,r);return{$type:e.$type,$cstNode:e.$cstNode,left:m,operator:i[a],right:g}}getAssignment(e){if(!this.assignmentMap.has(e)){let r=zh(e,Ac);this.assignmentMap.set(e,{assignment:r,crossRef:r&&_c(r.terminal)?r.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a==="single"&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):a==="multi"&&typeof n=="string"?l=this.linker.buildMultiReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[i,a]of Object.entries(r)){let s=e[i];s===void 0?e[i]=a:Array.isArray(s)&&Array.isArray(a)&&(a.push(...s),e[i]=a)}let n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},J6=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return Qh.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Qh.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Qh.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Qh.buildEarlyExitMessage(e)}},ev=class extends J6{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},p4=class extends f4{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(bve(e.name),this.startImplementation(r).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i,a){this.before(i),this.wrapper.wrapSubrule(e,r,a),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},Fnt={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new ev},eA=class extends ZT{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,{...Fnt,lookaheadStrategy:n?new Zh({maxLookahead:r.maxLookahead}):new r4({logging:r.skipValidations?()=>{}:void 0}),...r})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r,n){return this.RULE(e,r,n)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r,void 0)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}rule(e){return e.call(this,{})}},vz=class extends eA{static{o(this,"ProfilerWrapper")}constructor(e,r,n){super(e,r),this.task=n}rule(e){this.task.start(),this.task.startSubTask(this.ruleName(e));try{return super.rule(e)}finally{this.task.stopSubTask(this.ruleName(e)),this.task.stop()}}ruleName(e){return e.ruleName}subrule(e,r,n){this.task.startSubTask(this.ruleName(r));try{return super.subrule(e,r,n)}finally{this.task.stopSubTask(this.ruleName(r))}}}});function g4(t,e,r){return $nt({parser:e,tokens:r,ruleNames:new Map},t),e}function $nt(t,e){let r=RT(e,!1),n=Hr(e.rules).filter(Sa).filter(a=>r.has(a));for(let a of n){let s={...t,consume:1,optional:1,subrule:1,many:1,or:1};t.parser.rule(a,Em(s,a.definition))}let i=Hr(e.rules).filter(Gd).filter(a=>r.has(a));for(let a of i)t.parser.rule(a,znt(t,a))}function znt(t,e){let r=e.call.rule.ref;if(!r)throw new Error("Could not resolve reference to infix operator rule: "+e.call.rule.$refText);if(Bs(r))throw new Error("Cannot use terminal rule in infix expression");let n=e.operators.precedences.flatMap(m=>m.operators),i={$type:"Group",elements:[]},a={$container:i,$type:"Assignment",feature:"parts",operator:"+=",terminal:e.call},s={$container:i,$type:"Group",elements:[],cardinality:"*"};i.elements.push(a,s);let u={$container:s,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:n}},h={...a,$container:s};s.elements.push(u,h);let d=n.map(m=>t.tokens[m.value]).map((m,g)=>({ALT:o(()=>t.parser.consume(g,m,u),"ALT")})),p;return m=>{p??(p=bz(t,r)),t.parser.subrule(0,p,!1,a,m),t.parser.many(0,{DEF:o(()=>{t.parser.alternatives(0,d),t.parser.subrule(1,p,!1,h,m)},"DEF")})}}function Em(t,e,r=!1){let n;if(Pl(e))n=Ynt(t,e);else if(Uh(e))n=Gnt(t,e);else if(Ac(e))n=Em(t,e.terminal);else if(_c(e))n=Tve(t,e);else if(Dc(e))n=Vnt(t,e);else if(VC(e))n=Unt(t,e);else if(HC(e))n=Wnt(t,e);else if(zd(e))n=Hnt(t,e);else if(HB(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,el,e),"method")}else throw new lm(e.$cstNode,`Unexpected element type: ${e.$type}`);return wve(t,r?void 0:tA(e),n,e.cardinality)}function Gnt(t,e){let r=qd(e);return()=>t.parser.action(r,e)}function Vnt(t,e){let r=e.rule.ref;if(qh(r)){let n=t.subrule++,i=Sa(r)&&r.fragment,a=e.arguments.length>0?qnt(r,e.arguments):()=>({}),s;return l=>{s??(s=bz(t,r)),t.parser.subrule(n,s,i,e,a(l))}}else if(Bs(r)){let n=t.consume++,i=xz(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)Ou(r);else throw new lm(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function qnt(t,e){if(e.some(n=>n.calledByName)){let n=e.map(i=>({parameterName:i.parameter?.ref?.name,predicate:$u(i.value)}));return i=>{let a={};for(let{parameterName:s,predicate:l}of n)s&&(a[s]=l(i));return a}}else{let n=e.map(i=>$u(i.value));return i=>{let a={};for(let s=0;se(n)||r(n)}else if(UB(t)){let e=$u(t.left),r=$u(t.right);return n=>e(n)&&r(n)}else if(XB(t)){let e=$u(t.value);return r=>!e(r)}else if(KB(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(VB(t)){let e=!!t.true;return()=>e}Ou(t)}function Unt(t,e){if(e.elements.length===1)return Em(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:Em(t,i,!0)},s=tA(i);s&&(a.GATE=$u(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function Wnt(t,e){if(e.elements.length===1)return Em(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:Em(t,l,!0)},h=tA(l);h&&(u.GATE=$u(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>!d.unorderedGroups.get(i(n,d))?.[h],f})),"alternatives"),s=wve(t,tA(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function Hnt(t,e){let r=e.elements.map(n=>Em(t,n));return n=>r.forEach(i=>i(n))}function tA(t){if(zd(t))return t.guardCondition}function Tve(t,e,r=e.terminal){if(r)if(Dc(r)&&Sa(r.rule.ref)){let n=r.rule.ref,i=t.subrule++,a;return s=>{a??(a=bz(t,n)),t.parser.subrule(i,a,!1,e,s)}}else if(Dc(r)&&Bs(r.rule.ref)){let n=t.consume++,i=xz(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Pl(r)){let n=t.consume++,i=xz(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let i=JC(e.type.ref)?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+qd(e.type.ref));return Tve(t,e,i)}}function Ynt(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function wve(t,e,r,n){let i=e&&$u(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:$6(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:$6(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else Ou(n)}function bz(t,e){let r=jnt(t,e),n=t.parser.getRule(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function jnt(t,e){if(qh(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Sa(n);)(zd(n)||VC(n)||HC(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function xz(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var rA=O(()=>{"use strict";Hd();Zo();XC();Os();Rc();o(g4,"createParser");o($nt,"buildRules");o(znt,"buildInfixRule");o(Em,"buildElement");o(Gnt,"buildAction");o(Vnt,"buildRuleCall");o(qnt,"buildRuleCallPredicate");o($u,"buildPredicate");o(Unt,"buildAlternatives");o(Wnt,"buildUnorderedGroup");o(Hnt,"buildGroup");o(tA,"getGuardCondition");o(Tve,"buildCrossReference");o(Ynt,"buildKeyword");o(wve,"wrap");o(bz,"getRule");o(jnt,"getRuleName");o(xz,"getToken")});function Tz(t){let e=t.Grammar,r=t.parser.Lexer,n=new p4(t);return g4(e,n,r.definition),n.finalize(),n}var wz=O(()=>{"use strict";m4();rA();o(Tz,"createCompletionParser")});function kz(t){let e=kve(t);return e.finalize(),e}function kve(t){let e=t.Grammar,r=t.parser.Lexer,n=new d4(t);return g4(e,n,r.definition)}var Ez=O(()=>{"use strict";m4();rA();o(kz,"createLangiumParser");o(kve,"prepareLangiumParser")});var ef,nA=O(()=>{"use strict";Hd();Zo();us();Rc();wy();Os();ef=class{static{o(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,r){let n=Hr(RT(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return a.push(...i),a}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Bs).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=ky(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n};return typeof n=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=DT(r)?fi.SKIPPED:"hidden"),i}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s"))}regexPatternFunction(e){let r=new RegExp(e,e.flags+"y");return(n,i)=>(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(qh).flatMap(i=>Ec(i).filter(Pl)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){let i=this.buildKeywordPattern(e,n),a={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,r)};return typeof i=="function"&&(a.LINE_BREAKS=!0),a}buildKeywordPattern(e,r){return r?new RegExp(Vd(e.value),"i"):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&mF("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var Sm,zu,Sz=O(()=>{"use strict";Zo();Rc();Sm=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(_c(n)&&(n=vF(n)),Dc(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){switch(e.name.toUpperCase()){case"INT":return zu.convertInt(r);case"STRING":return zu.convertString(r);case"ID":return zu.convertID(r)}switch(SF(e)?.toLowerCase()){case"number":return zu.convertNumber(r);case"boolean":return zu.convertBoolean(r);case"bigint":return zu.convertBigint(r);case"date":return zu.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});var Cz;function Az(){if(Cz===void 0)throw new Error("No runtime abstraction layer installed");return Cz}o(Az,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");Cz=r}o(e,"install"),t.install=e})(Az||(Az={}));_z.default=Az});var tv=nr(hs=>{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});hs.stringArray=hs.array=hs.func=hs.error=hs.number=hs.string=hs.boolean=void 0;function Xnt(t){return t===!0||t===!1}o(Xnt,"boolean");hs.boolean=Xnt;function Eve(t){return typeof t=="string"||t instanceof String}o(Eve,"string");hs.string=Eve;function Knt(t){return typeof t=="number"||t instanceof Number}o(Knt,"number");hs.number=Knt;function Qnt(t){return t instanceof Error}o(Qnt,"error");hs.error=Qnt;function Znt(t){return typeof t=="function"}o(Znt,"func");hs.func=Znt;function Sve(t){return Array.isArray(t)}o(Sve,"array");hs.array=Sve;function Jnt(t){return Sve(t)&&t.every(e=>Eve(e))}o(Jnt,"stringArray");hs.stringArray=Jnt});var Cm=nr(rv=>{"use strict";Object.defineProperty(rv,"__esModule",{value:!0});rv.Emitter=rv.Event=void 0;var eit=Xd(),Cve;(function(t){let e={dispose(){}};t.None=function(){return e}})(Cve||(rv.Event=Cve={}));var Dz=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new Dz),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};rv.Emitter=iA;iA._noop=function(){}});var y4=nr(nv=>{"use strict";Object.defineProperty(nv,"__esModule",{value:!0});nv.CancellationTokenSource=nv.CancellationToken=void 0;var tit=Xd(),rit=tv(),Rz=Cm(),aA;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Rz.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Rz.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||rit.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(aA||(nv.CancellationToken=aA={}));var nit=Object.freeze(function(t,e){let r=(0,tit.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),sA=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?nit:(this._emitter||(this._emitter=new Rz.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Lz=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new sA),this._token}cancel(){this._token?this._token.cancel():this._token=aA.Cancelled}dispose(){this._token?this._token instanceof sA&&this._token.dispose():this._token=aA.None}};nv.CancellationTokenSource=Lz});var Nr={};var Bl=O(()=>{"use strict";jr(Nr,Ra(y4(),1))});function Nz(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function lA(){return oA=performance.now(),new Nr.CancellationTokenSource}function _ve(t){Ave=t}function Gu(t){return t===Fl}async function Ci(t){if(t===Nr.CancellationToken.None)return;let e=performance.now();if(e-oA>=Ave&&(oA=e,await Nz(),oA=performance.now()),t.isCancellationRequested)throw Fl}var oA,Ave,Fl,Vs,$l=O(()=>{"use strict";Bl();o(Nz,"delayNextTick");oA=0,Ave=10;o(lA,"startCancelableOperation");o(_ve,"setInterruptionPeriod");Fl=Symbol("OperationCancelled");o(Gu,"isOperationCancelled");o(Ci,"interruptAndCheck");Vs=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function Mz(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);Mz(n,e),Mz(i,e);let a=0,s=0,l=0;for(;ar.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function iit(t){let e=Lve(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var cA,iv,Nve=O(()=>{"use strict";cA=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=Lve(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=Dve(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pe?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1r&&Rve(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new cA(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof cA)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=Mz(a.map(iit),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(iv||(iv={}));o(Mz,"mergeSort");o(Dve,"computeLineOffsets");o(Rve,"isEOL");o(Lve,"getWellformedRange");o(iit,"getWellformedEdit")});var Mve,ca,av,Iz=O(()=>{"use strict";(()=>{"use strict";var t={975:N=>{function C(M){if(typeof M!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(M))}o(C,"e");function _(M,R){for(var P,B="",F=0,G=-1,$=0,V=0;V<=M.length;++V){if(V2){var X=B.lastIndexOf("/");if(X!==B.length-1){X===-1?(B="",F=0):F=(B=B.slice(0,X)).length-1-B.lastIndexOf("/"),G=V,$=0;continue}}else if(B.length===2||B.length===1){B="",F=0,G=V,$=0;continue}}R&&(B.length>0?B+="/..":B="..",F=2)}else B.length>0?B+="/"+M.slice(G+1,V):B=M.slice(G+1,V),F=V-G-1;G=V,$=0}else P===46&&$!==-1?++$:$=-1}return B}o(_,"r");var D={resolve:o(function(){for(var M,R="",P=!1,B=arguments.length-1;B>=-1&&!P;B--){var F;B>=0?F=arguments[B]:(M===void 0&&(M=process.cwd()),F=M),C(F),F.length!==0&&(R=F+"/"+R,P=F.charCodeAt(0)===47)}return R=_(R,!P),P?R.length>0?"/"+R:"/":R.length>0?R:"."},"resolve"),normalize:o(function(M){if(C(M),M.length===0)return".";var R=M.charCodeAt(0)===47,P=M.charCodeAt(M.length-1)===47;return(M=_(M,!R)).length!==0||R||(M="."),M.length>0&&P&&(M+="/"),R?"/"+M:M},"normalize"),isAbsolute:o(function(M){return C(M),M.length>0&&M.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var M,R=0;R0&&(M===void 0?M=P:M+="/"+P)}return M===void 0?".":D.normalize(M)},"join"),relative:o(function(M,R){if(C(M),C(R),M===R||(M=D.resolve(M))===(R=D.resolve(R)))return"";for(var P=1;PV){if(R.charCodeAt(G+Q)===47)return R.slice(G+Q+1);if(Q===0)return R.slice(G+Q)}else F>V&&(M.charCodeAt(P+Q)===47?X=Q:Q===0&&(X=0));break}var H=M.charCodeAt(P+Q);if(H!==R.charCodeAt(G+Q))break;H===47&&(X=Q)}var ie="";for(Q=P+X+1;Q<=B;++Q)Q!==B&&M.charCodeAt(Q)!==47||(ie.length===0?ie+="..":ie+="/..");return ie.length>0?ie+R.slice(G+X):(G+=X,R.charCodeAt(G)===47&&++G,R.slice(G))},"relative"),_makeLong:o(function(M){return M},"_makeLong"),dirname:o(function(M){if(C(M),M.length===0)return".";for(var R=M.charCodeAt(0),P=R===47,B=-1,F=!0,G=M.length-1;G>=1;--G)if((R=M.charCodeAt(G))===47){if(!F){B=G;break}}else F=!1;return B===-1?P?"/":".":P&&B===1?"//":M.slice(0,B)},"dirname"),basename:o(function(M,R){if(R!==void 0&&typeof R!="string")throw new TypeError('"ext" argument must be a string');C(M);var P,B=0,F=-1,G=!0;if(R!==void 0&&R.length>0&&R.length<=M.length){if(R.length===M.length&&R===M)return"";var $=R.length-1,V=-1;for(P=M.length-1;P>=0;--P){var X=M.charCodeAt(P);if(X===47){if(!G){B=P+1;break}}else V===-1&&(G=!1,V=P+1),$>=0&&(X===R.charCodeAt($)?--$==-1&&(F=P):($=-1,F=V))}return B===F?F=V:F===-1&&(F=M.length),M.slice(B,F)}for(P=M.length-1;P>=0;--P)if(M.charCodeAt(P)===47){if(!G){B=P+1;break}}else F===-1&&(G=!1,F=P+1);return F===-1?"":M.slice(B,F)},"basename"),extname:o(function(M){C(M);for(var R=-1,P=0,B=-1,F=!0,G=0,$=M.length-1;$>=0;--$){var V=M.charCodeAt($);if(V!==47)B===-1&&(F=!1,B=$+1),V===46?R===-1?R=$:G!==1&&(G=1):R!==-1&&(G=-1);else if(!F){P=$+1;break}}return R===-1||B===-1||G===0||G===1&&R===B-1&&R===P+1?"":M.slice(R,B)},"extname"),format:o(function(M){if(M===null||typeof M!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof M);return(function(R,P){var B=P.dir||P.root,F=P.base||(P.name||"")+(P.ext||"");return B?B===P.root?B+F:B+"/"+F:F})(0,M)},"format"),parse:o(function(M){C(M);var R={root:"",dir:"",base:"",ext:"",name:""};if(M.length===0)return R;var P,B=M.charCodeAt(0),F=B===47;F?(R.root="/",P=1):P=0;for(var G=-1,$=0,V=-1,X=!0,Q=M.length-1,H=0;Q>=P;--Q)if((B=M.charCodeAt(Q))!==47)V===-1&&(X=!1,V=Q+1),B===46?G===-1?G=Q:H!==1&&(H=1):G!==-1&&(H=-1);else if(!X){$=Q+1;break}return G===-1||V===-1||H===0||H===1&&G===V-1&&G===$+1?V!==-1&&(R.base=R.name=$===0&&F?M.slice(1,V):M.slice($,V)):($===0&&F?(R.name=M.slice(1,G),R.base=M.slice(1,V)):(R.name=M.slice($,G),R.base=M.slice($,V)),R.ext=M.slice(G,V)),$>0?R.dir=M.slice(0,$-1):F&&(R.dir="/"),R},"parse"),sep:"/",delimiter:":",win32:null,posix:null};D.posix=D,N.exports=D}},e={};function r(N){var C=e[N];if(C!==void 0)return C.exports;var _=e[N]={exports:{}};return t[N](_,_.exports,r),_.exports}o(r,"r"),r.d=(N,C)=>{for(var _ in C)r.o(C,_)&&!r.o(N,_)&&Object.defineProperty(N,_,{enumerable:!0,get:C[_]})},r.o=(N,C)=>Object.prototype.hasOwnProperty.call(N,C),r.r=N=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(N,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(N,"__esModule",{value:!0})};var n={};let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>I,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(N,C){if(!N.scheme&&C)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${N.authority}", path: "${N.path}", query: "${N.query}", fragment: "${N.fragment}"}`);if(N.scheme&&!a.test(N.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(N.path){if(N.authority){if(!s.test(N.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(N.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"a");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"l")}static isUri(C){return C instanceof p||!!C&&typeof C.authority=="string"&&typeof C.fragment=="string"&&typeof C.path=="string"&&typeof C.query=="string"&&typeof C.scheme=="string"&&typeof C.fsPath=="string"&&typeof C.with=="function"&&typeof C.toString=="function"}scheme;authority;path;query;fragment;constructor(C,_,D,M,R,P=!1){typeof C=="object"?(this.scheme=C.scheme||h,this.authority=C.authority||h,this.path=C.path||h,this.query=C.query||h,this.fragment=C.fragment||h):(this.scheme=(function(B,F){return B||F?B:"file"})(C,P),this.authority=_||h,this.path=(function(B,F){switch(B){case"https":case"http":case"file":F?F[0]!==f&&(F=f+F):F=f}return F})(this.scheme,D||h),this.query=M||h,this.fragment=R||h,u(this,P))}get fsPath(){return b(this,!1)}with(C){if(!C)return this;let{scheme:_,authority:D,path:M,query:R,fragment:P}=C;return _===void 0?_=this.scheme:_===null&&(_=h),D===void 0?D=this.authority:D===null&&(D=h),M===void 0?M=this.path:M===null&&(M=h),R===void 0?R=this.query:R===null&&(R=h),P===void 0?P=this.fragment:P===null&&(P=h),_===this.scheme&&D===this.authority&&M===this.path&&R===this.query&&P===this.fragment?this:new g(_,D,M,R,P)}static parse(C,_=!1){let D=d.exec(C);return D?new g(D[2]||h,k(D[4]||h),k(D[5]||h),k(D[7]||h),k(D[9]||h),_):new g(h,h,h,h,h)}static file(C){let _=h;if(i&&(C=C.replace(/\\/g,f)),C[0]===f&&C[1]===f){let D=C.indexOf(f,2);D===-1?(_=C.substring(2),C=f):(_=C.substring(2,D),C=C.substring(D)||f)}return new g("file",_,C,h,h)}static from(C){let _=new g(C.scheme,C.authority,C.path,C.query,C.fragment);return u(_,!0),_}toString(C=!1){return T(this,C)}toJSON(){return this}static revive(C){if(C){if(C instanceof p)return C;{let _=new g(C);return _._formatted=C.external,_._fsPath=C._sep===m?C.fsPath:null,_}}return C}}let m=i?1:void 0;class g extends p{static{o(this,"d")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(C=!1){return C?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let C={$mid:1};return this._fsPath&&(C.fsPath=this._fsPath,C._sep=m),this._formatted&&(C.external=this._formatted),this.path&&(C.path=this.path),this.scheme&&(C.scheme=this.scheme),this.authority&&(C.authority=this.authority),this.query&&(C.query=this.query),this.fragment&&(C.fragment=this.fragment),C}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(N,C,_){let D,M=-1;for(let R=0;R=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||C&&P===47||_&&P===91||_&&P===93||_&&P===58)M!==-1&&(D+=encodeURIComponent(N.substring(M,R)),M=-1),D!==void 0&&(D+=N.charAt(R));else{D===void 0&&(D=N.substr(0,R));let B=y[P];B!==void 0?(M!==-1&&(D+=encodeURIComponent(N.substring(M,R)),M=-1),D+=B):M===-1&&(M=R)}}return M!==-1&&(D+=encodeURIComponent(N.substring(M))),D!==void 0?D:N}o(v,"m");function x(N){let C;for(let _=0;_1&&N.scheme==="file"?`//${N.authority}${N.path}`:N.path.charCodeAt(0)===47&&(N.path.charCodeAt(1)>=65&&N.path.charCodeAt(1)<=90||N.path.charCodeAt(1)>=97&&N.path.charCodeAt(1)<=122)&&N.path.charCodeAt(2)===58?C?N.path.substr(1):N.path[1].toLowerCase()+N.path.substr(2):N.path,i&&(_=_.replace(/\//g,"\\")),_}o(b,"v");function T(N,C){let _=C?x:v,D="",{scheme:M,authority:R,path:P,query:B,fragment:F}=N;if(M&&(D+=M,D+=":"),(R||M==="file")&&(D+=f,D+=f),R){let G=R.indexOf("@");if(G!==-1){let $=R.substr(0,G);R=R.substr(G+1),G=$.lastIndexOf(":"),G===-1?D+=_($,!1,!1):(D+=_($.substr(0,G),!1,!1),D+=":",D+=_($.substr(G+1),!1,!0)),D+="@"}R=R.toLowerCase(),G=R.lastIndexOf(":"),G===-1?D+=_(R,!1,!0):(D+=_(R.substr(0,G),!1,!0),D+=R.substr(G))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let G=P.charCodeAt(1);G>=65&&G<=90&&(P=`/${String.fromCharCode(G+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let G=P.charCodeAt(0);G>=65&&G<=90&&(P=`${String.fromCharCode(G+32)}:${P.substr(2)}`)}D+=_(P,!0,!1)}return B&&(D+="?",D+=_(B,!1,!1)),F&&(D+="#",D+=C?F:v(F,!1,!1)),D}o(T,"b");function E(N){try{return decodeURIComponent(N)}catch{return N.length>3?N.substr(0,3)+E(N.substr(3)):N}}o(E,"C");let w=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function k(N){return N.match(w)?N.replace(w,(C=>E(C))):N}o(k,"w");var S=r(975);let A=S.posix||S,L="/";var I;(function(N){N.joinPath=function(C,..._){return C.with({path:A.join(C.path,..._)})},N.resolvePath=function(C,..._){let D=C.path,M=!1;D[0]!==L&&(D=L+D,M=!0);let R=A.resolve(D,..._);return M&&R[0]===L&&!C.authority&&(R=R.substring(1)),C.with({path:R})},N.dirname=function(C){if(C.path.length===0||C.path===L)return C;let _=A.dirname(C.path);return _.length===1&&_.charCodeAt(0)===46&&(_=""),C.with({path:_})},N.basename=function(C){return A.basename(C.path)},N.extname=function(C){return A.extname(C.path)}})(I||(I={})),Mve=n})();({URI:ca,Utils:av}=Mve)});var Fi,sv,Nc=O(()=>{"use strict";Iz();(function(t){t.basename=av.basename,t.dirname=av.dirname,t.extname=av.extname,t.joinPath=av.joinPath,t.resolvePath=av.resolvePath;let e=typeof process=="object"&&process?.platform==="win32";function r(s,l){return s?.toString()===l?.toString()}o(r,"equals"),t.equals=r;function n(s,l){let u=typeof s=="string"?ca.parse(s).path:s.path,h=typeof l=="string"?ca.parse(l).path:l.path,f=u.split("/").filter(y=>y.length>0),d=h.split("/").filter(y=>y.length>0);if(e){let y=/^[A-Z]:$/;if(f[0]&&y.test(f[0])&&(f[0]=f[0].toLowerCase()),d[0]&&y.test(d[0])&&(d[0]=d[0].toLowerCase()),f[0]!==d[0])return h.substring(1)}let p=0;for(;p({name:i.name,uri:Fi.joinPath(ca.parse(r),i.name).toString(),element:i.element})):[]}all(){return this.collectValues(this.root)}findAll(e){let r=this.getNode(Fi.normalize(e),!1);return r?this.collectValues(r):[]}getNode(e,r){let n=e.split("/");e.charAt(e.length-1)==="/"&&n.pop();let i=this.root;for(let a of n){let s=i.children.get(a);if(!s)if(r)s={name:a,children:new Map,parent:i},i.children.set(a,s);else return;i=s}return i}collectValues(e){let r=[];e.element&&r.push(e.element);for(let n of e.children.values())r.push(...this.collectValues(n));return r}}});var qr,v4,x4,ov=O(()=>{"use strict";Nve();ov();Bl();Os();Nc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(qr||(qr={}));v4=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=Nr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??ca.parse(e.uri),Nr.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromString(e,r,n){return Nr.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r,n){if(typeof r=="string"){let i=this.parse(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else if("$model"in r){let i={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{let i=this.parse(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:qr.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:qr.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){let n=e.parseResult.value.$cstNode?.root.fullText,i=this.textDocuments?.get(e.uri.toString()),a=i?i.getText():await this.fileSystemProvider.readFile(e.uri);if(i)Object.defineProperty(e,"textDocument",{value:i});else{let s=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:s})}return n!==a&&(e.parseResult=await this.parseAsync(e.uri,a,r),e.parseResult.value.$document=e),e.state=qr.Parsed,e}parse(e,r,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r,n)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=iv.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},x4=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentTrie=new sv,this.services=e,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.documentBuilder=()=>e.workspace.DocumentBuilder}get all(){return Hr(this.documentTrie.all())}addDocument(e){let r=e.uri.toString();if(this.documentTrie.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentTrie.insert(r,e)}getDocument(e){let r=e.toString();return this.documentTrie.find(r)}getDocuments(e){let r=e.toString();return this.documentTrie.findAll(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentTrie.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentTrie.find(r);return n&&this.documentBuilder().resetToState(n,qr.Changed),n}deleteDocument(e){let r=e.toString(),n=this.documentTrie.find(r);return n&&(n.state=qr.Changed,this.documentTrie.delete(r)),n}deleteDocuments(e){let r=e.toString(),n=this.documentTrie.findAll(r);for(let i of n)i.state=qr.Changed;return this.documentTrie.delete(r),n}}});var Am,b4,Oz=O(()=>{"use strict";Bl();kc();us();$l();ov();Am=Symbol("RefResolving"),b4=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async link(e,r=Nr.CancellationToken.None){if(this.profiler?.isActive("linking")){let n=this.profiler.createTask("linking",this.languageId);n.start();try{for(let i of Ps(e.parseResult.value))await Ci(r),Id(i).forEach(a=>{let s=`${i.$type}:${a.property}`;n.startSubTask(s);try{this.doLink(a,e)}finally{n.stopSubTask(s)}})}finally{n.stop()}}else for(let n of Ps(e.parseResult.value))await Ci(r),Id(n).forEach(i=>this.doLink(i,e))}doLink(e,r){let n=e.reference;if("_ref"in n&&n._ref===void 0){n._ref=Am;try{let i=this.getCandidate(e);if(j0(i))n._ref=i;else{n._nodeDescription=i;let a=this.loadAstNode(i);n._ref=a??this.createLinkingError(e,i)}}catch(i){console.error(`An error occurred while resolving reference to '${n.$refText}':`,i);let a=i.message??String(i);n._ref={info:e,message:`An error occurred while resolving reference to '${n.$refText}': ${a}`}}r.references.push(n)}else if("_items"in n&&n._items===void 0){n._items=Am;try{let i=this.getCandidates(e),a=[];if(j0(i))n._linkingError=i;else for(let s of i){let l=this.loadAstNode(s);l&&a.push({ref:l,$nodeDescription:s})}n._items=a}catch(i){n._linkingError={info:e,message:`An error occurred while resolving reference to '${n.$refText}': ${i}`},n._items=[]}r.references.push(n)}}unlink(e){for(let r of e.references)"_ref"in r?(r._ref=void 0,delete r._nodeDescription):"_items"in r&&(r._items=void 0,delete r._linkingError);e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}getCandidates(e){let n=this.scopeProvider.getScope(e).getElements(e.reference.$refText).distinct(i=>`${i.documentUri}#${i.path}`).toArray();return n.length>0?n:this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,_ref:void 0,get ref(){if(Si(this._ref))return this._ref;if(PB(this._nodeDescription)){let l=a.loadAstNode(this._nodeDescription);this._ref=l??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){this._ref=Am;let l=hy(e).$document,u=a.getLinkedNode({reference:s,container:e,property:r});if(u.error&&l&&l.state0))return this._linkingError=a.createLinkingError({reference:s,container:e,property:r})}};return s}throwCyclicReferenceError(e,r,n){throw new Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(e)}/${r} (symbol '${n}')`)}getLinkedNode(e){try{let r=this.getCandidate(e);if(j0(r))return{error:r};let n=this.loadAstNode(r);return n?{node:n,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);let n=r.message??String(r);return{error:{info:e,message:`An error occurred while resolving reference to '${e.reference.$refText}': ${n}`}}}}loadAstNode(e){if(e.node)return e.node;let r=this.langiumDocuments().getDocument(e.documentUri);if(r)return this.astNodeLocator.getAstNode(r.parseResult.value,e.path)}createLinkingError(e,r){let n=hy(e.container).$document;n&&n.state{"use strict";Rc();o(Ive,"isNamed");T4=class{static{o(this,"DefaultNameProvider")}getName(e){if(Ive(e))return e.name}getNameNode(e){return LT(e.$cstNode,"name")}}});var w4,Bz=O(()=>{"use strict";Rc();kc();us();Sc();Os();Nc();Zo();w4=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator,this.documents=e.shared.workspace.LangiumDocuments,this.hasMultiReference=Ps(e.Grammar).some(r=>_c(r)&&r.isMulti)}findDeclarations(e){if(e){let r=EF(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(oa(i)||Xo(i))return AC(i);if(Array.isArray(i)){for(let a of i)if((oa(a)||Xo(a))&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return AC(a)}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||sF(e,i)))return this.getSelfNodes(n)}}return[]}getSelfNodes(e){if(this.hasMultiReference){let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e)),n=this.getNodeFromReferenceDescription(r.head());if(n){for(let i of Id(n))if(Xo(i.reference)&&i.reference.items.some(a=>a.ref===e))return i.reference.items.map(a=>a.ref)}return[e]}else return[e]}getNodeFromReferenceDescription(e){if(!e)return;let r=this.documents.getDocument(e.sourceUri);if(r)return this.nodeLocator.getAstNode(r.parseResult.value,e.sourcePath)}findDeclarationNodes(e){let r=this.findDeclarations(e),n=[];for(let i of r){let a=this.nameProvider.getNameNode(i)??i.$cstNode;a&&n.push(a)}return n}findReferences(e,r){let n=[];r.includeDeclaration&&n.push(...this.getSelfReferences(e));let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>Fi.equals(a.sourceUri,r.documentUri))),n.push(...i),Hr(n)}getSelfReferences(e){let r=this.getSelfNodes(e),n=[];for(let i of r){let a=this.nameProvider.getNameNode(i);if(a){let s=cs(i),l=this.nodeLocator.getAstNodePath(i);n.push({sourceUri:s.uri,sourcePath:l,targetUri:s.uri,targetPath:l,segment:om(a),local:!0})}}return n}}});var fs,_m,Kd=O(()=>{"use strict";Os();fs=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return cy.sum(Hr(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){return this.map.get(e)??[]}getStream(e){let r=this.map.get(e);return r?Hr(r):Md}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return Hr(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return Hr(this.map.keys())}values(){return Hr(this.map.values()).flat()}entriesGroupedByKey(){return Hr(this.map.entries())}},_m=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var k4,Fz=O(()=>{"use strict";us();Bl();Kd();$l();k4=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(e,r=Nr.CancellationToken.None){return this.collectExportedSymbolsForNode(e.parseResult.value,e,void 0,r)}async collectExportedSymbolsForNode(e,r,n=dT,i=Nr.CancellationToken.None){let a=[];this.addExportedSymbol(e,a,r);for(let s of n(e))await Ci(i),this.addExportedSymbol(s,a,r);return a}addExportedSymbol(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async collectLocalSymbols(e,r=Nr.CancellationToken.None){let n=e.parseResult.value,i=new fs;for(let a of Ec(n))await Ci(r),this.addLocalSymbol(a,e,i);return i}addLocalSymbol(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var lv,$z,E4,ait,zz=O(()=>{"use strict";Kd();Os();lv=class{static{o(this,"StreamScope")}constructor(e,r,n){this.elements=e,this.outerScope=r,this.caseInsensitive=n?.caseInsensitive??!1,this.concatOuterScope=n?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.caseInsensitive?this.elements.find(i=>i.name.toLowerCase()===r):this.elements.find(i=>i.name===e);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.caseInsensitive?this.elements.filter(i=>i.name.toLowerCase()===r):this.elements.filter(i=>i.name===e);return(this.concatOuterScope||n.isEmpty())&&this.outerScope?n.concat(this.outerScope.getElements(e)):n}},$z=class{static{o(this,"MapScope")}constructor(e,r,n){this.elements=new Map,this.caseInsensitive=n?.caseInsensitive??!1,this.concatOuterScope=n?.concatOuterScope??!0;for(let i of e){let a=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.set(a,i)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r),i=n?[n]:[];return(this.concatOuterScope||i.length>0)&&this.outerScope?Hr(i).concat(this.outerScope.getElements(e)):Hr(i)}getAllElements(){let e=Hr(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},E4=class{static{o(this,"MultiMapScope")}constructor(e,r,n){this.elements=new fs,this.caseInsensitive=n?.caseInsensitive??!1,this.concatOuterScope=n?.concatOuterScope??!0;for(let i of e){let a=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.add(a,i)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r)[0];if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);return(this.concatOuterScope||n.length===0)&&this.outerScope?Hr(n).concat(this.outerScope.getElements(e)):Hr(n)}getAllElements(){let e=Hr(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},ait={getElement(){},getElements(){return Md},getAllElements(){return Md}}});var cv,S4,Dm,uA,uv,hA=O(()=>{"use strict";cv=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},S4=class extends cv{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},Dm=class extends cv{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},uA=class extends Dm{static{o(this,"DocumentCache")}constructor(e,r){super(n=>n.toString()),r?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(r,n=>{this.clear(n.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{for(let a of i)this.clear(a)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{let a=n.concat(i);for(let s of a)this.clear(s)}))}},uv=class extends S4{static{o(this,"WorkspaceCache")}constructor(e,r){super(),r?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(r,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var C4,Gz=O(()=>{"use strict";zz();us();Os();hA();C4=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new uv(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=cs(e.container).localSymbols;if(i){let s=e.container;do i.has(s)&&r.push(i.getStream(s).filter(l=>this.reflection.isSubtype(l.type,n))),s=s.$container;while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new lv(Hr(e),r,n)}createScopeForNodes(e,r,n){let i=Hr(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new lv(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new E4(this.indexManager.allElements(e)))}}});function Vz(t){return typeof t.$comment=="string"}function Ove(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var A4,fA=O(()=>{"use strict";Iz();kc();us();Rc();o(Vz,"isAstNodeWithComment");o(Ove,"isIntermediateReference");A4=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r){let n=r??{},i=r?.replacer,a=o((l,u)=>this.replacer(l,u,n),"defaultReplacer"),s=i?(l,u)=>i(l,u,a):a;try{return this.currentDocument=cs(e),JSON.stringify(e,s,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r){let n=r??{},i=JSON.parse(e);return this.linkNode(i,i,n),i}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){if(!this.ignoreProperties.has(e))if(oa(r)){let u=r.ref,h=n?r.$refText:void 0;if(u){let f=cs(u),d="";this.currentDocument&&this.currentDocument!==f&&(l?d=l(f.uri,u):d=f.uri.toString());let p=this.astNodeLocator.getAstNodePath(u);return{$ref:`${d}#${p}`,$refText:h}}else return{$error:r.error?.message??"Could not resolve reference",$refText:h}}else if(Xo(r)){let u=n?r.$refText:void 0,h=[];for(let f of r.items){let d=f.ref,p=cs(f.ref),m="";this.currentDocument&&this.currentDocument!==p&&(l?m=l(p.uri,d):m=p.uri.toString());let g=this.astNodeLocator.getAstNodePath(d);h.push(`${m}#${g}`)}return{$refs:h,$refText:u}}else if(Si(r)){let u;if(a&&(u=this.addAstNodeRegionWithAssignmentsTo({...r}),(!e||r.$document)&&u?.$textRegion&&(u.$textRegion.documentURI=this.currentDocument?.uri.toString())),i&&!e&&(u??(u={...r}),u.$sourceText=r.$cstNode?.text),s){u??(u={...r});let h=this.commentProvider.getComment(r);h&&(u.$comment=h.replace(/\r/g,""))}return u??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=bF(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f{"use strict";Nc();_4=class{static{o(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let r=e.LanguageMetaData;for(let n of r.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${r.languageId}'.`),this.fileExtensionMap.set(n,e);if(r.fileNames)for(let n of r.fileNames)this.fileNameMap.has(n)&&console.warn(`The file name ${n} is used by multiple languages. It is now assigned to '${r.languageId}'.`),this.fileNameMap.set(n,e);this.languageIdMap.set(r.languageId,e)}getServices(e){if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let r=this.textDocuments?.get(e)?.languageId;if(r!==void 0){let s=this.languageIdMap.get(r);if(s)return s}let n=Fi.extname(e),i=Fi.basename(e),a=this.fileNameMap.get(i)??this.fileExtensionMap.get(n);if(!a)throw r?new Error(`The service registry contains no services for the extension '${n}' for language '${r}'.`):new Error(`The service registry contains no services for the extension '${n}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}});function Rm(t){return{code:t}}var dA,D4,pA=O(()=>{"use strict";tl();Kd();$l();Os();o(Rm,"diagnosticData");(function(t){t.defaults=["fast","slow","built-in"],t.all=t.defaults})(dA||(dA={}));D4=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new fs,this.knownCategories=new Set(dA.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");this.knownCategories.add(n);for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}else Ou(s)}}wrapValidationException(e,r){return async(n,i,a)=>{await this.handleException(()=>e.call(r,n,i,a),"An error occurred during validation",i,n)}}async handleException(e,r,n,i){try{await e()}catch(a){if(Gu(a))throw a;console.error(`${r}:`,a),a instanceof Error&&a.stack&&console.error(a.stack);let s=a instanceof Error?a.message:String(a);n("error",`${r}: ${s}`,{node:i})}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=Hr(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}registerBeforeDocument(e,r=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",r))}registerAfterDocument(e,r=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",r))}wrapPreparationException(e,r,n){return async(i,a,s,l)=>{await this.handleException(()=>e.call(n,i,a,s,l),r,a,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(e){return this.knownCategories}}});function Bve(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=LT(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=wF(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function mA(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}function Fve(t){switch(t){case"error":return Rm(zl.LexingError);case"warning":return Rm(zl.LexingWarning);case"info":return Rm(zl.LexingInfo);case"hint":return Rm(zl.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var Pve,R4,zl,Uz=O(()=>{"use strict";Bl();Rc();us();Sc();$l();pA();Pve=Object.freeze({validateNode:!0,validateChildren:!0}),R4=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async validateDocument(e,r={},n=Nr.CancellationToken.None){let i=e.parseResult,a=[];if(await Ci(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>s.data?.code===zl.LexingError)||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>s.data?.code===zl.ParsingError))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>s.data?.code===zl.LinkingError))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(Gu(s))throw s;console.error("An error occurred during validation:",s)}return await Ci(n),a}processLexingErrors(e,r,n){let i=[...e.lexerErrors,...e.lexerReport?.diagnostics??[]];for(let a of i){let s=a.severity??"error",l={severity:mA(s),range:{start:{line:a.line-1,character:a.column-1},end:{line:a.line-1,character:a.column+a.length-1}},message:a.message,data:Fve(s),source:this.getSource()};r.push(l)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=by(i.token);if(a){let s={severity:mA("error"),range:a,message:i.message,data:Rm(zl.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.info.container,range:i.$refNode?.range,property:a.info.property,index:a.info.index,data:{code:zl.LinkingError,containerType:a.info.container.$type,property:a.info.property,refText:a.info.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=Nr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await this.validateAstBefore(e,r,a,n),await this.validateAstNodes(e,r,a,n),await this.validateAstAfter(e,r,a,n),i}async validateAstBefore(e,r,n,i=Nr.CancellationToken.None){let a=this.validationRegistry.checksBefore;for(let s of a)await Ci(i),await s(e,n,r.categories??[],i)}async validateAstNodes(e,r,n,i=Nr.CancellationToken.None){if(this.profiler?.isActive("validating")){let a=this.profiler.createTask("validating",this.languageId);a.start();try{let s=Ps(e).iterator();for(let l of s){a.startSubTask(l.$type);let u=this.validateSingleNodeOptions(l,r);if(u.validateNode)try{let h=this.validationRegistry.getChecks(l.$type,r.categories);for(let f of h)await f(l,n,i)}finally{a.stopSubTask(l.$type)}u.validateChildren||s.prune()}}finally{a.stop()}}else{let a=Ps(e).iterator();for(let s of a){await Ci(i);let l=this.validateSingleNodeOptions(s,r);if(l.validateNode){let u=this.validationRegistry.getChecks(s.$type,r.categories);for(let h of u)await h(s,n,i)}l.validateChildren||a.prune()}}}validateSingleNodeOptions(e,r){return Pve}async validateAstAfter(e,r,n,i=Nr.CancellationToken.None){let a=this.validationRegistry.checksAfter;for(let s of a)await Ci(i),await s(e,n,r.categories??[],i)}toDiagnostic(e,r,n){return{message:r,range:Bve(n),severity:mA(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(Bve,"getDiagnosticRange");o(mA,"toDiagnosticSeverity");o(Fve,"toDiagnosticData");(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(zl||(zl={}))});var L4,N4,Wz=O(()=>{"use strict";Bl();kc();us();Sc();$l();Nc();L4=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n){let i=n??cs(e);r??(r=this.nameProvider.getName(e));let a=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${a} has no name.`);let s,l=o(()=>s??(s=om(this.nameProvider.getNameNode(e)??e.$cstNode)),"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return l()},selectionSegment:om(e.$cstNode),type:e.$type,documentUri:i.uri,path:a}}},N4=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=Nr.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of Ps(i))await Ci(r),Id(a).forEach(s=>{s.reference.error||n.push(...this.createInfoDescriptions(s))});return n}createInfoDescriptions(e){let r=e.reference;if(r.error||!r.$refNode)return[];let n=[];oa(r)&&r.$nodeDescription?n=[r.$nodeDescription]:Xo(r)&&(n=r.items.map(u=>u.$nodeDescription).filter(u=>u!==void 0));let i=cs(e.container).uri,a=this.nodeLocator.getAstNodePath(e.container),s=[],l=om(r.$refNode);for(let u of n)s.push({sourceUri:i,sourcePath:a,targetUri:u.documentUri,targetPath:u.path,segment:l,local:Fi.equals(u.documentUri,i)});return s}}});var M4,Hz=O(()=>{"use strict";M4=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1));return i[l]?.[u]}return i[a]},e)}}});var pi={};var gA=O(()=>{"use strict";jr(pi,Ra(Cm(),1))});var I4,Yz=O(()=>{"use strict";gA();$l();I4=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new Vs,this.onConfigurationSectionUpdateEmitter=new pi.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){this.workspaceConfig=e.capabilities.workspace?.configuration??!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){typeof e.settings!="object"||e.settings===null||Object.entries(e.settings).forEach(([r,n])=>{this.updateSectionConfiguration(r,n),this.onConfigurationSectionUpdateEmitter.fire({section:r,configuration:n})})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}});var vG=nr(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});lr.Message=lr.NotificationType9=lr.NotificationType8=lr.NotificationType7=lr.NotificationType6=lr.NotificationType5=lr.NotificationType4=lr.NotificationType3=lr.NotificationType2=lr.NotificationType1=lr.NotificationType0=lr.NotificationType=lr.RequestType9=lr.RequestType8=lr.RequestType7=lr.RequestType6=lr.RequestType5=lr.RequestType4=lr.RequestType3=lr.RequestType2=lr.RequestType1=lr.RequestType=lr.RequestType0=lr.AbstractMessageSignature=lr.ParameterStructures=lr.ResponseError=lr.ErrorCodes=void 0;var Lm=tv(),jz;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(jz||(lr.ErrorCodes=jz={}));var Xz=class t extends Error{static{o(this,"ResponseError")}constructor(e,r,n){super(r),this.code=Lm.number(e)?e:jz.UnknownErrorCode,this.data=n,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};lr.ResponseError=Xz;var So=class t{static{o(this,"ParameterStructures")}constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};lr.ParameterStructures=So;So.auto=new So("auto");So.byPosition=new So("byPosition");So.byName=new So("byName");var ni=class{static{o(this,"AbstractMessageSignature")}constructor(e,r){this.method=e,this.numberOfParams=r}get parameterStructures(){return So.auto}};lr.AbstractMessageSignature=ni;var Kz=class extends ni{static{o(this,"RequestType0")}constructor(e){super(e,0)}};lr.RequestType0=Kz;var Qz=class extends ni{static{o(this,"RequestType")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.RequestType=Qz;var Zz=class extends ni{static{o(this,"RequestType1")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.RequestType1=Zz;var Jz=class extends ni{static{o(this,"RequestType2")}constructor(e){super(e,2)}};lr.RequestType2=Jz;var eG=class extends ni{static{o(this,"RequestType3")}constructor(e){super(e,3)}};lr.RequestType3=eG;var tG=class extends ni{static{o(this,"RequestType4")}constructor(e){super(e,4)}};lr.RequestType4=tG;var rG=class extends ni{static{o(this,"RequestType5")}constructor(e){super(e,5)}};lr.RequestType5=rG;var nG=class extends ni{static{o(this,"RequestType6")}constructor(e){super(e,6)}};lr.RequestType6=nG;var iG=class extends ni{static{o(this,"RequestType7")}constructor(e){super(e,7)}};lr.RequestType7=iG;var aG=class extends ni{static{o(this,"RequestType8")}constructor(e){super(e,8)}};lr.RequestType8=aG;var sG=class extends ni{static{o(this,"RequestType9")}constructor(e){super(e,9)}};lr.RequestType9=sG;var oG=class extends ni{static{o(this,"NotificationType")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.NotificationType=oG;var lG=class extends ni{static{o(this,"NotificationType0")}constructor(e){super(e,0)}};lr.NotificationType0=lG;var cG=class extends ni{static{o(this,"NotificationType1")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.NotificationType1=cG;var uG=class extends ni{static{o(this,"NotificationType2")}constructor(e){super(e,2)}};lr.NotificationType2=uG;var hG=class extends ni{static{o(this,"NotificationType3")}constructor(e){super(e,3)}};lr.NotificationType3=hG;var fG=class extends ni{static{o(this,"NotificationType4")}constructor(e){super(e,4)}};lr.NotificationType4=fG;var dG=class extends ni{static{o(this,"NotificationType5")}constructor(e){super(e,5)}};lr.NotificationType5=dG;var pG=class extends ni{static{o(this,"NotificationType6")}constructor(e){super(e,6)}};lr.NotificationType6=pG;var mG=class extends ni{static{o(this,"NotificationType7")}constructor(e){super(e,7)}};lr.NotificationType7=mG;var gG=class extends ni{static{o(this,"NotificationType8")}constructor(e){super(e,8)}};lr.NotificationType8=gG;var yG=class extends ni{static{o(this,"NotificationType9")}constructor(e){super(e,9)}};lr.NotificationType9=yG;var $ve;(function(t){function e(i){let a=i;return a&&Lm.string(a.method)&&(Lm.string(a.id)||Lm.number(a.id))}o(e,"isRequest"),t.isRequest=e;function r(i){let a=i;return a&&Lm.string(a.method)&&i.id===void 0}o(r,"isNotification"),t.isNotification=r;function n(i){let a=i;return a&&(a.result!==void 0||!!a.error)&&(Lm.string(a.id)||Lm.number(a.id)||a.id===null)}o(n,"isResponse"),t.isResponse=n})($ve||(lr.Message=$ve={}))});var bG=nr(Qd=>{"use strict";var zve;Object.defineProperty(Qd,"__esModule",{value:!0});Qd.LRUCache=Qd.LinkedMap=Qd.Touch=void 0;var ds;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(ds||(Qd.Touch=ds={}));var yA=class{static{o(this,"LinkedMap")}constructor(){this[zve]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,r=ds.None){let n=this._map.get(e);if(n)return r!==ds.None&&this.touch(n,r),n.value}set(e,r,n=ds.None){let i=this._map.get(e);if(i)i.value=r,n!==ds.None&&this.touch(i,n);else{switch(i={key:e,value:r,next:void 0,previous:void 0},n){case ds.None:this.addItemLast(i);break;case ds.First:this.addItemFirst(i);break;case ds.Last:this.addItemLast(i);break;default:this.addItemLast(i);break}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let r=this._map.get(e);if(r)return this._map.delete(e),this.removeItem(r),this._size--,r.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,r){let n=this._state,i=this._head;for(;i;){if(r?e.bind(r)(i.value,i.key,this):e(i.value,i.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");i=i.next}}keys(){let e=this._state,r=this._head,n={[Symbol.iterator]:()=>n,next:o(()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(r){let i={value:r.key,done:!1};return r=r.next,i}else return{value:void 0,done:!0}},"next")};return n}values(){let e=this._state,r=this._head,n={[Symbol.iterator]:()=>n,next:o(()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(r){let i={value:r.value,done:!1};return r=r.next,i}else return{value:void 0,done:!0}},"next")};return n}entries(){let e=this._state,r=this._head,n={[Symbol.iterator]:()=>n,next:o(()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(r){let i={value:[r.key,r.value],done:!1};return r=r.next,i}else return{value:void 0,done:!0}},"next")};return n}[(zve=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let r=this._head,n=this.size;for(;r&&n>e;)this._map.delete(r.key),r=r.next,n--;this._head=r,this._size=n,r&&(r.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let r=e.next,n=e.previous;if(!r||!n)throw new Error("Invalid list");r.previous=n,n.next=r}e.next=void 0,e.previous=void 0,this._state++}touch(e,r){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(r!==ds.First&&r!==ds.Last)){if(r===ds.First){if(e===this._head)return;let n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(r===ds.Last){if(e===this._tail)return;let n=e.next,i=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((r,n)=>{e.push([n,r])}),e}fromJSON(e){this.clear();for(let[r,n]of e)this.set(r,n)}};Qd.LinkedMap=yA;var xG=class extends yA{static{o(this,"LRUCache")}constructor(e,r=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,r),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,r=ds.AsNew){return super.get(e,r)}peek(e){return super.get(e,ds.None)}set(e,r){return super.set(e,r,ds.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};Qd.LRUCache=xG});var Vve=nr(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.Disposable=void 0;var Gve;(function(t){function e(r){return{dispose:r}}o(e,"create"),t.create=e})(Gve||(vA.Disposable=Gve={}))});var qve=nr(hv=>{"use strict";Object.defineProperty(hv,"__esModule",{value:!0});hv.SharedArrayReceiverStrategy=hv.SharedArraySenderStrategy=void 0;var sit=y4(),O4;(function(t){t.Continue=0,t.Cancelled=1})(O4||(O4={}));var TG=class{static{o(this,"SharedArraySenderStrategy")}constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let r=new SharedArrayBuffer(4),n=new Int32Array(r,0,1);n[0]=O4.Continue,this.buffers.set(e.id,r),e.$cancellationData=r}async sendCancellation(e,r){let n=this.buffers.get(r);if(n===void 0)return;let i=new Int32Array(n,0,1);Atomics.store(i,0,O4.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};hv.SharedArraySenderStrategy=TG;var wG=class{static{o(this,"SharedArrayBufferCancellationToken")}constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===O4.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},kG=class{static{o(this,"SharedArrayBufferCancellationTokenSource")}constructor(e){this.token=new wG(e)}cancel(){}dispose(){}},EG=class{static{o(this,"SharedArrayReceiverStrategy")}constructor(){this.kind="request"}createCancellationTokenSource(e){let r=e.$cancellationData;return r===void 0?new sit.CancellationTokenSource:new kG(r)}};hv.SharedArrayReceiverStrategy=EG});var CG=nr(xA=>{"use strict";Object.defineProperty(xA,"__esModule",{value:!0});xA.Semaphore=void 0;var oit=Xd(),SG=class{static{o(this,"Semaphore")}constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((r,n)=>{this._waiting.push({thunk:e,resolve:r,reject:n}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,oit.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let r=e.thunk();r instanceof Promise?r.then(n=>{this._active--,e.resolve(n),this.runNext()},n=>{this._active--,e.reject(n),this.runNext()}):(this._active--,e.resolve(r),this.runNext())}catch(r){this._active--,e.reject(r),this.runNext()}}};xA.Semaphore=SG});var Wve=nr(Zd=>{"use strict";Object.defineProperty(Zd,"__esModule",{value:!0});Zd.ReadableStreamMessageReader=Zd.AbstractMessageReader=Zd.MessageReader=void 0;var _G=Xd(),fv=tv(),AG=Cm(),lit=CG(),Uve;(function(t){function e(r){let n=r;return n&&fv.func(n.listen)&&fv.func(n.dispose)&&fv.func(n.onError)&&fv.func(n.onClose)&&fv.func(n.onPartialMessage)}o(e,"is"),t.is=e})(Uve||(Zd.MessageReader=Uve={}));var bA=class{static{o(this,"AbstractMessageReader")}constructor(){this.errorEmitter=new AG.Emitter,this.closeEmitter=new AG.Emitter,this.partialMessageEmitter=new AG.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${fv.string(e.message)?e.message:"unknown"}`)}};Zd.AbstractMessageReader=bA;var DG;(function(t){function e(r){let n,i,a,s=new Map,l,u=new Map;if(r===void 0||typeof r=="string")n=r??"utf-8";else{if(n=r.charset??"utf-8",r.contentDecoder!==void 0&&(a=r.contentDecoder,s.set(a.name,a)),r.contentDecoders!==void 0)for(let h of r.contentDecoders)s.set(h.name,h);if(r.contentTypeDecoder!==void 0&&(l=r.contentTypeDecoder,u.set(l.name,l)),r.contentTypeDecoders!==void 0)for(let h of r.contentTypeDecoders)u.set(h.name,h)}return l===void 0&&(l=(0,_G.default)().applicationJson.decoder,u.set(l.name,l)),{charset:n,contentDecoder:a,contentDecoders:s,contentTypeDecoder:l,contentTypeDecoders:u}}o(e,"fromOptions"),t.fromOptions=e})(DG||(DG={}));var RG=class extends bA{static{o(this,"ReadableStreamMessageReader")}constructor(e,r){super(),this.readable=e,this.options=DG.fromOptions(r),this.buffer=(0,_G.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new lit.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let r=this.readable.onData(n=>{this.onData(n)});return this.readable.onError(n=>this.fireError(n)),this.readable.onClose(()=>this.fireClose()),r}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let n=this.buffer.tryReadHeaders(!0);if(!n)return;let i=n.get("content-length");if(!i){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(n))}`));return}let a=parseInt(i);if(isNaN(a)){this.fireError(new Error(`Content-Length value must be a number. Got ${i}`));return}this.nextMessageLength=a}let r=this.buffer.tryReadBody(this.nextMessageLength);if(r===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let n=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(r):r,i=await this.options.contentTypeDecoder.decode(n,this.options);this.callback(i)}).catch(n=>{this.fireError(n)})}}catch(r){this.fireError(r)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,_G.default)().timer.setTimeout((e,r)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:r}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Zd.ReadableStreamMessageReader=RG});var Kve=nr(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.WriteableStreamMessageWriter=Jd.AbstractMessageWriter=Jd.MessageWriter=void 0;var Hve=Xd(),P4=tv(),cit=CG(),Yve=Cm(),uit="Content-Length: ",jve=`\r +`,Xve;(function(t){function e(r){let n=r;return n&&P4.func(n.dispose)&&P4.func(n.onClose)&&P4.func(n.onError)&&P4.func(n.write)}o(e,"is"),t.is=e})(Xve||(Jd.MessageWriter=Xve={}));var TA=class{static{o(this,"AbstractMessageWriter")}constructor(){this.errorEmitter=new Yve.Emitter,this.closeEmitter=new Yve.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,r,n){this.errorEmitter.fire([this.asError(e),r,n])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${P4.string(e.message)?e.message:"unknown"}`)}};Jd.AbstractMessageWriter=TA;var LG;(function(t){function e(r){return r===void 0||typeof r=="string"?{charset:r??"utf-8",contentTypeEncoder:(0,Hve.default)().applicationJson.encoder}:{charset:r.charset??"utf-8",contentEncoder:r.contentEncoder,contentTypeEncoder:r.contentTypeEncoder??(0,Hve.default)().applicationJson.encoder}}o(e,"fromOptions"),t.fromOptions=e})(LG||(LG={}));var NG=class extends TA{static{o(this,"WriteableStreamMessageWriter")}constructor(e,r){super(),this.writable=e,this.options=LG.fromOptions(r),this.errorCount=0,this.writeSemaphore=new cit.Semaphore(1),this.writable.onError(n=>this.fireError(n)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(n=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(n):n).then(n=>{let i=[];return i.push(uit,n.byteLength.toString(),jve),i.push(jve),this.doWrite(e,i,n)},n=>{throw this.fireError(n),n}))}async doWrite(e,r,n){try{return await this.writable.write(r.join(""),"ascii"),this.writable.write(n)}catch(i){return this.handleError(i,e),Promise.reject(i)}}handleError(e,r){this.errorCount++,this.fireError(e,r,this.errorCount)}end(){this.writable.end()}};Jd.WriteableStreamMessageWriter=NG});var Qve=nr(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.AbstractMessageBuffer=void 0;var hit=13,fit=10,dit=`\r +`,MG=class{static{o(this,"AbstractMessageBuffer")}constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let r=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(r),this._totalLength+=r.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let r=0,n=0,i=0,a=0;e:for(;nthis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let a=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(a)}if(this._chunks[0].byteLength>e){let a=this._chunks[0],s=this.asNative(a,e);return this._chunks[0]=a.slice(e),this._totalLength-=e,s}let r=this.allocNative(e),n=0,i=0;for(;e>0;){let a=this._chunks[i];if(a.byteLength>e){let s=a.slice(0,e);r.set(s,n),n+=e,this._chunks[i]=a.slice(e),this._totalLength-=e,e-=e}else r.set(a,n),n+=a.byteLength,this._chunks.shift(),this._totalLength-=a.byteLength,e-=a.byteLength}return r}};wA.AbstractMessageBuffer=MG});var r2e=nr(Rr=>{"use strict";Object.defineProperty(Rr,"__esModule",{value:!0});Rr.createMessageConnection=Rr.ConnectionOptions=Rr.MessageStrategy=Rr.CancellationStrategy=Rr.CancellationSenderStrategy=Rr.CancellationReceiverStrategy=Rr.RequestCancellationReceiverStrategy=Rr.IdCancellationReceiverStrategy=Rr.ConnectionStrategy=Rr.ConnectionError=Rr.ConnectionErrors=Rr.LogTraceNotification=Rr.SetTraceNotification=Rr.TraceFormat=Rr.TraceValues=Rr.Trace=Rr.NullLogger=Rr.ProgressType=Rr.ProgressToken=void 0;var Zve=Xd(),Ai=tv(),br=vG(),Jve=bG(),B4=Cm(),IG=y4(),z4;(function(t){t.type=new br.NotificationType("$/cancelRequest")})(z4||(z4={}));var OG;(function(t){function e(r){return typeof r=="string"||typeof r=="number"}o(e,"is"),t.is=e})(OG||(Rr.ProgressToken=OG={}));var F4;(function(t){t.type=new br.NotificationType("$/progress")})(F4||(F4={}));var PG=class{static{o(this,"ProgressType")}constructor(){}};Rr.ProgressType=PG;var BG;(function(t){function e(r){return Ai.func(r)}o(e,"is"),t.is=e})(BG||(BG={}));Rr.NullLogger=Object.freeze({error:o(()=>{},"error"),warn:o(()=>{},"warn"),info:o(()=>{},"info"),log:o(()=>{},"log")});var vn;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(vn||(Rr.Trace=vn={}));var e2e;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(e2e||(Rr.TraceValues=e2e={}));(function(t){function e(n){if(!Ai.string(n))return t.Off;switch(n=n.toLowerCase(),n){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}o(e,"fromString"),t.fromString=e;function r(n){switch(n){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}o(r,"toString"),t.toString=r})(vn||(Rr.Trace=vn={}));var rl;(function(t){t.Text="text",t.JSON="json"})(rl||(Rr.TraceFormat=rl={}));(function(t){function e(r){return Ai.string(r)?(r=r.toLowerCase(),r==="json"?t.JSON:t.Text):t.Text}o(e,"fromString"),t.fromString=e})(rl||(Rr.TraceFormat=rl={}));var FG;(function(t){t.type=new br.NotificationType("$/setTrace")})(FG||(Rr.SetTraceNotification=FG={}));var kA;(function(t){t.type=new br.NotificationType("$/logTrace")})(kA||(Rr.LogTraceNotification=kA={}));var $4;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})($4||(Rr.ConnectionErrors=$4={}));var dv=class t extends Error{static{o(this,"ConnectionError")}constructor(e,r){super(r),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Rr.ConnectionError=dv;var $G;(function(t){function e(r){let n=r;return n&&Ai.func(n.cancelUndispatched)}o(e,"is"),t.is=e})($G||(Rr.ConnectionStrategy=$G={}));var EA;(function(t){function e(r){let n=r;return n&&(n.kind===void 0||n.kind==="id")&&Ai.func(n.createCancellationTokenSource)&&(n.dispose===void 0||Ai.func(n.dispose))}o(e,"is"),t.is=e})(EA||(Rr.IdCancellationReceiverStrategy=EA={}));var zG;(function(t){function e(r){let n=r;return n&&n.kind==="request"&&Ai.func(n.createCancellationTokenSource)&&(n.dispose===void 0||Ai.func(n.dispose))}o(e,"is"),t.is=e})(zG||(Rr.RequestCancellationReceiverStrategy=zG={}));var SA;(function(t){t.Message=Object.freeze({createCancellationTokenSource(r){return new IG.CancellationTokenSource}});function e(r){return EA.is(r)||zG.is(r)}o(e,"is"),t.is=e})(SA||(Rr.CancellationReceiverStrategy=SA={}));var CA;(function(t){t.Message=Object.freeze({sendCancellation(r,n){return r.sendNotification(z4.type,{id:n})},cleanup(r){}});function e(r){let n=r;return n&&Ai.func(n.sendCancellation)&&Ai.func(n.cleanup)}o(e,"is"),t.is=e})(CA||(Rr.CancellationSenderStrategy=CA={}));var AA;(function(t){t.Message=Object.freeze({receiver:SA.Message,sender:CA.Message});function e(r){let n=r;return n&&SA.is(n.receiver)&&CA.is(n.sender)}o(e,"is"),t.is=e})(AA||(Rr.CancellationStrategy=AA={}));var _A;(function(t){function e(r){let n=r;return n&&Ai.func(n.handleMessage)}o(e,"is"),t.is=e})(_A||(Rr.MessageStrategy=_A={}));var t2e;(function(t){function e(r){let n=r;return n&&(AA.is(n.cancellationStrategy)||$G.is(n.connectionStrategy)||_A.is(n.messageStrategy))}o(e,"is"),t.is=e})(t2e||(Rr.ConnectionOptions=t2e={}));var Mc;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Mc||(Mc={}));function pit(t,e,r,n){let i=r!==void 0?r:Rr.NullLogger,a=0,s=0,l=0,u="2.0",h,f=new Map,d,p=new Map,m=new Map,g,y=new Jve.LinkedMap,v=new Map,x=new Set,b=new Map,T=vn.Off,E=rl.Text,w,k=Mc.New,S=new B4.Emitter,A=new B4.Emitter,L=new B4.Emitter,I=new B4.Emitter,N=new B4.Emitter,C=n&&n.cancellationStrategy?n.cancellationStrategy:AA.Message;function _(j){if(j===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+j.toString()}o(_,"createRequestQueueKey");function D(j){return j===null?"res-unknown-"+(++l).toString():"res-"+j.toString()}o(D,"createResponseQueueKey");function M(){return"not-"+(++s).toString()}o(M,"createNotificationQueueKey");function R(j,ae){br.Message.isRequest(ae)?j.set(_(ae.id),ae):br.Message.isResponse(ae)?j.set(D(ae.id),ae):j.set(M(),ae)}o(R,"addMessageToQueue");function P(j){}o(P,"cancelUndispatched");function B(){return k===Mc.Listening}o(B,"isListening");function F(){return k===Mc.Closed}o(F,"isClosed");function G(){return k===Mc.Disposed}o(G,"isDisposed");function $(){(k===Mc.New||k===Mc.Listening)&&(k=Mc.Closed,A.fire(void 0))}o($,"closeHandler");function V(j){S.fire([j,void 0,void 0])}o(V,"readErrorHandler");function X(j){S.fire(j)}o(X,"writeErrorHandler"),t.onClose($),t.onError(V),e.onClose($),e.onError(X);function Q(){g||y.size===0||(g=(0,Zve.default)().timer.setImmediate(()=>{g=void 0,ie()}))}o(Q,"triggerMessageQueue");function H(j){br.Message.isRequest(j)?le(j):br.Message.isNotification(j)?J(j):br.Message.isResponse(j)?ee(j):te(j)}o(H,"handleMessage");function ie(){if(y.size===0)return;let j=y.shift();try{let ae=n?.messageStrategy;_A.is(ae)?ae.handleMessage(j,H):H(j)}finally{Q()}}o(ie,"processMessageQueue");let Y=o(j=>{try{if(br.Message.isNotification(j)&&j.method===z4.type.method){let ae=j.params.id,U=_(ae),ce=y.get(U);if(br.Message.isRequest(ce)){let ne=n?.connectionStrategy,se=ne&&ne.cancelUndispatched?ne.cancelUndispatched(ce,P):void 0;if(se&&(se.error!==void 0||se.result!==void 0)){y.delete(U),b.delete(ae),se.id=ce.id,Se(se,j.method,Date.now()),e.write(se).catch(()=>i.error("Sending response for canceled message failed."));return}}let z=b.get(ae);if(z!==void 0){z.cancel(),ke(j);return}else x.add(ae)}R(y,j)}finally{Q()}},"callback");function le(j){if(G())return;function ae(pe,me,Re){let ge={jsonrpc:u,id:j.id};pe instanceof br.ResponseError?ge.error=pe.toJson():ge.result=pe===void 0?null:pe,Se(ge,me,Re),e.write(ge).catch(()=>i.error("Sending response failed."))}o(ae,"reply");function U(pe,me,Re){let ge={jsonrpc:u,id:j.id,error:pe.toJson()};Se(ge,me,Re),e.write(ge).catch(()=>i.error("Sending response failed."))}o(U,"replyError");function ce(pe,me,Re){pe===void 0&&(pe=null);let ge={jsonrpc:u,id:j.id,result:pe};Se(ge,me,Re),e.write(ge).catch(()=>i.error("Sending response failed."))}o(ce,"replySuccess"),Me(j);let z=f.get(j.method),ne,se;z&&(ne=z.type,se=z.handler);let be=Date.now();if(se||h){let pe=j.id??String(Date.now()),me=EA.is(C.receiver)?C.receiver.createCancellationTokenSource(pe):C.receiver.createCancellationTokenSource(j);j.id!==null&&x.has(j.id)&&me.cancel(),j.id!==null&&b.set(pe,me);try{let Re;if(se)if(j.params===void 0){if(ne!==void 0&&ne.numberOfParams!==0){U(new br.ResponseError(br.ErrorCodes.InvalidParams,`Request ${j.method} defines ${ne.numberOfParams} params but received none.`),j.method,be);return}Re=se(me.token)}else if(Array.isArray(j.params)){if(ne!==void 0&&ne.parameterStructures===br.ParameterStructures.byName){U(new br.ResponseError(br.ErrorCodes.InvalidParams,`Request ${j.method} defines parameters by name but received parameters by position`),j.method,be);return}Re=se(...j.params,me.token)}else{if(ne!==void 0&&ne.parameterStructures===br.ParameterStructures.byPosition){U(new br.ResponseError(br.ErrorCodes.InvalidParams,`Request ${j.method} defines parameters by position but received parameters by name`),j.method,be);return}Re=se(j.params,me.token)}else h&&(Re=h(j.method,j.params,me.token));let ge=Re;Re?ge.then?ge.then(Ie=>{b.delete(pe),ae(Ie,j.method,be)},Ie=>{b.delete(pe),Ie instanceof br.ResponseError?U(Ie,j.method,be):Ie&&Ai.string(Ie.message)?U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed with message: ${Ie.message}`),j.method,be):U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed unexpectedly without providing any details.`),j.method,be)}):(b.delete(pe),ae(Re,j.method,be)):(b.delete(pe),ce(Re,j.method,be))}catch(Re){b.delete(pe),Re instanceof br.ResponseError?ae(Re,j.method,be):Re&&Ai.string(Re.message)?U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed with message: ${Re.message}`),j.method,be):U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed unexpectedly without providing any details.`),j.method,be)}}else U(new br.ResponseError(br.ErrorCodes.MethodNotFound,`Unhandled method ${j.method}`),j.method,be)}o(le,"handleRequest");function ee(j){if(!G())if(j.id===null)j.error?i.error(`Received response message without id: Error is: +${JSON.stringify(j.error,void 0,4)}`):i.error("Received response message without id. No further error information provided.");else{let ae=j.id,U=v.get(ae);if(we(j,U),U!==void 0){v.delete(ae);try{if(j.error){let ce=j.error;U.reject(new br.ResponseError(ce.code,ce.message,ce.data))}else if(j.result!==void 0)U.resolve(j.result);else throw new Error("Should never happen.")}catch(ce){ce.message?i.error(`Response handler '${U.method}' failed with message: ${ce.message}`):i.error(`Response handler '${U.method}' failed unexpectedly.`)}}}}o(ee,"handleResponse");function J(j){if(G())return;let ae,U;if(j.method===z4.type.method){let ce=j.params.id;x.delete(ce),ke(j);return}else{let ce=p.get(j.method);ce&&(U=ce.handler,ae=ce.type)}if(U||d)try{if(ke(j),U)if(j.params===void 0)ae!==void 0&&ae.numberOfParams!==0&&ae.parameterStructures!==br.ParameterStructures.byName&&i.error(`Notification ${j.method} defines ${ae.numberOfParams} params but received none.`),U();else if(Array.isArray(j.params)){let ce=j.params;j.method===F4.type.method&&ce.length===2&&OG.is(ce[0])?U({token:ce[0],value:ce[1]}):(ae!==void 0&&(ae.parameterStructures===br.ParameterStructures.byName&&i.error(`Notification ${j.method} defines parameters by name but received parameters by position`),ae.numberOfParams!==j.params.length&&i.error(`Notification ${j.method} defines ${ae.numberOfParams} params but received ${ce.length} arguments`)),U(...ce))}else ae!==void 0&&ae.parameterStructures===br.ParameterStructures.byPosition&&i.error(`Notification ${j.method} defines parameters by position but received parameters by name`),U(j.params);else d&&d(j.method,j.params)}catch(ce){ce.message?i.error(`Notification handler '${j.method}' failed with message: ${ce.message}`):i.error(`Notification handler '${j.method}' failed unexpectedly.`)}else L.fire(j)}o(J,"handleNotification");function te(j){if(!j){i.error("Received empty message.");return}i.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(j,null,4)}`);let ae=j;if(Ai.string(ae.id)||Ai.number(ae.id)){let U=ae.id,ce=v.get(U);ce&&ce.reject(new Error("The received response has neither a result nor an error property."))}}o(te,"handleInvalidMessage");function Z(j){if(j!=null)switch(T){case vn.Verbose:return JSON.stringify(j,null,4);case vn.Compact:return JSON.stringify(j);default:return}}o(Z,"stringifyTrace");function xe(j){if(!(T===vn.Off||!w))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&j.params&&(ae=`Params: ${Z(j.params)} + +`),w.log(`Sending request '${j.method} - (${j.id})'.`,ae)}else _e("send-request",j)}o(xe,"traceSendingRequest");function de(j){if(!(T===vn.Off||!w))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&(j.params?ae=`Params: ${Z(j.params)} + +`:ae=`No parameters provided. + +`),w.log(`Sending notification '${j.method}'.`,ae)}else _e("send-notification",j)}o(de,"traceSendingNotification");function Se(j,ae,U){if(!(T===vn.Off||!w))if(E===rl.Text){let ce;(T===vn.Verbose||T===vn.Compact)&&(j.error&&j.error.data?ce=`Error data: ${Z(j.error.data)} + +`:j.result?ce=`Result: ${Z(j.result)} + +`:j.error===void 0&&(ce=`No result returned. + +`)),w.log(`Sending response '${ae} - (${j.id})'. Processing request took ${Date.now()-U}ms`,ce)}else _e("send-response",j)}o(Se,"traceSendingResponse");function Me(j){if(!(T===vn.Off||!w))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&j.params&&(ae=`Params: ${Z(j.params)} + +`),w.log(`Received request '${j.method} - (${j.id})'.`,ae)}else _e("receive-request",j)}o(Me,"traceReceivedRequest");function ke(j){if(!(T===vn.Off||!w||j.method===kA.type.method))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&(j.params?ae=`Params: ${Z(j.params)} + +`:ae=`No parameters provided. + +`),w.log(`Received notification '${j.method}'.`,ae)}else _e("receive-notification",j)}o(ke,"traceReceivedNotification");function we(j,ae){if(!(T===vn.Off||!w))if(E===rl.Text){let U;if((T===vn.Verbose||T===vn.Compact)&&(j.error&&j.error.data?U=`Error data: ${Z(j.error.data)} + +`:j.result?U=`Result: ${Z(j.result)} + +`:j.error===void 0&&(U=`No result returned. + +`)),ae){let ce=j.error?` Request failed: ${j.error.message} (${j.error.code}).`:"";w.log(`Received response '${ae.method} - (${j.id})' in ${Date.now()-ae.timerStart}ms.${ce}`,U)}else w.log(`Received response ${j.id} without active response promise.`,U)}else _e("receive-response",j)}o(we,"traceReceivedResponse");function _e(j,ae){if(!w||T===vn.Off)return;let U={isLSPMessage:!0,type:j,message:ae,timestamp:Date.now()};w.log(U)}o(_e,"logLSPMessage");function $e(){if(F())throw new dv($4.Closed,"Connection is closed.");if(G())throw new dv($4.Disposed,"Connection is disposed.")}o($e,"throwIfClosedOrDisposed");function fe(){if(B())throw new dv($4.AlreadyListening,"Connection is already listening")}o(fe,"throwIfListening");function Ke(){if(!B())throw new Error("Call listen() first.")}o(Ke,"throwIfNotListening");function Te(j){return j===void 0?null:j}o(Te,"undefinedToNull");function Be(j){if(j!==null)return j}o(Be,"nullToUndefined");function Ue(j){return j!=null&&!Array.isArray(j)&&typeof j=="object"}o(Ue,"isNamedParam");function Ge(j,ae){switch(j){case br.ParameterStructures.auto:return Ue(ae)?Be(ae):[Te(ae)];case br.ParameterStructures.byName:if(!Ue(ae))throw new Error("Received parameters by name but param is not an object literal.");return Be(ae);case br.ParameterStructures.byPosition:return[Te(ae)];default:throw new Error(`Unknown parameter structure ${j.toString()}`)}}o(Ge,"computeSingleParam");function Ne(j,ae){let U,ce=j.numberOfParams;switch(ce){case 0:U=void 0;break;case 1:U=Ge(j.parameterStructures,ae[0]);break;default:U=[];for(let z=0;z{$e();let U,ce;if(Ai.string(j)){U=j;let ne=ae[0],se=0,be=br.ParameterStructures.auto;br.ParameterStructures.is(ne)&&(se=1,be=ne);let pe=ae.length,me=pe-se;switch(me){case 0:ce=void 0;break;case 1:ce=Ge(be,ae[se]);break;default:if(be===br.ParameterStructures.byName)throw new Error(`Received ${me} parameters for 'by Name' notification parameter structure.`);ce=ae.slice(se,pe).map(Re=>Te(Re));break}}else{let ne=ae;U=j.method,ce=Ne(j,ne)}let z={jsonrpc:u,method:U,params:ce};return de(z),e.write(z).catch(ne=>{throw i.error("Sending notification failed."),ne})},"sendNotification"),onNotification:o((j,ae)=>{$e();let U;return Ai.func(j)?d=j:ae&&(Ai.string(j)?(U=j,p.set(j,{type:void 0,handler:ae})):(U=j.method,p.set(j.method,{type:j,handler:ae}))),{dispose:o(()=>{U!==void 0?p.delete(U):d=void 0},"dispose")}},"onNotification"),onProgress:o((j,ae,U)=>{if(m.has(ae))throw new Error(`Progress handler for token ${ae} already registered`);return m.set(ae,U),{dispose:o(()=>{m.delete(ae)},"dispose")}},"onProgress"),sendProgress:o((j,ae,U)=>We.sendNotification(F4.type,{token:ae,value:U}),"sendProgress"),onUnhandledProgress:I.event,sendRequest:o((j,...ae)=>{$e(),Ke();let U,ce,z;if(Ai.string(j)){U=j;let pe=ae[0],me=ae[ae.length-1],Re=0,ge=br.ParameterStructures.auto;br.ParameterStructures.is(pe)&&(Re=1,ge=pe);let Ie=ae.length;IG.CancellationToken.is(me)&&(Ie=Ie-1,z=me);let qe=Ie-Re;switch(qe){case 0:ce=void 0;break;case 1:ce=Ge(ge,ae[Re]);break;default:if(ge===br.ParameterStructures.byName)throw new Error(`Received ${qe} parameters for 'by Name' request parameter structure.`);ce=ae.slice(Re,Ie).map(Pe=>Te(Pe));break}}else{let pe=ae;U=j.method,ce=Ne(j,pe);let me=j.numberOfParams;z=IG.CancellationToken.is(pe[me])?pe[me]:void 0}let ne=a++,se;z&&(se=z.onCancellationRequested(()=>{let pe=C.sender.sendCancellation(We,ne);return pe===void 0?(i.log(`Received no promise from cancellation strategy when cancelling id ${ne}`),Promise.resolve()):pe.catch(()=>{i.log(`Sending cancellation messages for id ${ne} failed`)})}));let be={jsonrpc:u,id:ne,method:U,params:ce};return xe(be),typeof C.sender.enableCancellation=="function"&&C.sender.enableCancellation(be),new Promise(async(pe,me)=>{let Re=o(qe=>{pe(qe),C.sender.cleanup(ne),se?.dispose()},"resolveWithCleanup"),ge=o(qe=>{me(qe),C.sender.cleanup(ne),se?.dispose()},"rejectWithCleanup"),Ie={method:U,timerStart:Date.now(),resolve:Re,reject:ge};try{await e.write(be),v.set(ne,Ie)}catch(qe){throw i.error("Sending request failed."),Ie.reject(new br.ResponseError(br.ErrorCodes.MessageWriteError,qe.message?qe.message:"Unknown reason")),qe}})},"sendRequest"),onRequest:o((j,ae)=>{$e();let U=null;return BG.is(j)?(U=void 0,h=j):Ai.string(j)?(U=null,ae!==void 0&&(U=j,f.set(j,{handler:ae,type:void 0}))):ae!==void 0&&(U=j.method,f.set(j.method,{type:j,handler:ae})),{dispose:o(()=>{U!==null&&(U!==void 0?f.delete(U):h=void 0)},"dispose")}},"onRequest"),hasPendingResponse:o(()=>v.size>0,"hasPendingResponse"),trace:o(async(j,ae,U)=>{let ce=!1,z=rl.Text;U!==void 0&&(Ai.boolean(U)?ce=U:(ce=U.sendNotification||!1,z=U.traceFormat||rl.Text)),T=j,E=z,T===vn.Off?w=void 0:w=ae,ce&&!F()&&!G()&&await We.sendNotification(FG.type,{value:vn.toString(j)})},"trace"),onError:S.event,onClose:A.event,onUnhandledNotification:L.event,onDispose:N.event,end:o(()=>{e.end()},"end"),dispose:o(()=>{if(G())return;k=Mc.Disposed,N.fire(void 0);let j=new br.ResponseError(br.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let ae of v.values())ae.reject(j);v=new Map,b=new Map,x=new Set,y=new Jve.LinkedMap,Ai.func(e.dispose)&&e.dispose(),Ai.func(t.dispose)&&t.dispose()},"dispose"),listen:o(()=>{$e(),fe(),k=Mc.Listening,t.listen(Y)},"listen"),inspect:o(()=>{(0,Zve.default)().console.log("inspect")},"inspect")};return We.onNotification(kA.type,j=>{if(T===vn.Off||!w)return;let ae=T===vn.Verbose||T===vn.Compact;w.log(j.message,ae?j.verbose:void 0)}),We.onNotification(F4.type,j=>{let ae=m.get(j.token);ae?ae(j.value):I.fire(j)}),We}o(pit,"createMessageConnection");Rr.createMessageConnection=pit});var DA=nr(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.ProgressType=tt.ProgressToken=tt.createMessageConnection=tt.NullLogger=tt.ConnectionOptions=tt.ConnectionStrategy=tt.AbstractMessageBuffer=tt.WriteableStreamMessageWriter=tt.AbstractMessageWriter=tt.MessageWriter=tt.ReadableStreamMessageReader=tt.AbstractMessageReader=tt.MessageReader=tt.SharedArrayReceiverStrategy=tt.SharedArraySenderStrategy=tt.CancellationToken=tt.CancellationTokenSource=tt.Emitter=tt.Event=tt.Disposable=tt.LRUCache=tt.Touch=tt.LinkedMap=tt.ParameterStructures=tt.NotificationType9=tt.NotificationType8=tt.NotificationType7=tt.NotificationType6=tt.NotificationType5=tt.NotificationType4=tt.NotificationType3=tt.NotificationType2=tt.NotificationType1=tt.NotificationType0=tt.NotificationType=tt.ErrorCodes=tt.ResponseError=tt.RequestType9=tt.RequestType8=tt.RequestType7=tt.RequestType6=tt.RequestType5=tt.RequestType4=tt.RequestType3=tt.RequestType2=tt.RequestType1=tt.RequestType0=tt.RequestType=tt.Message=tt.RAL=void 0;tt.MessageStrategy=tt.CancellationStrategy=tt.CancellationSenderStrategy=tt.CancellationReceiverStrategy=tt.ConnectionError=tt.ConnectionErrors=tt.LogTraceNotification=tt.SetTraceNotification=tt.TraceFormat=tt.TraceValues=tt.Trace=void 0;var Kn=vG();Object.defineProperty(tt,"Message",{enumerable:!0,get:o(function(){return Kn.Message},"get")});Object.defineProperty(tt,"RequestType",{enumerable:!0,get:o(function(){return Kn.RequestType},"get")});Object.defineProperty(tt,"RequestType0",{enumerable:!0,get:o(function(){return Kn.RequestType0},"get")});Object.defineProperty(tt,"RequestType1",{enumerable:!0,get:o(function(){return Kn.RequestType1},"get")});Object.defineProperty(tt,"RequestType2",{enumerable:!0,get:o(function(){return Kn.RequestType2},"get")});Object.defineProperty(tt,"RequestType3",{enumerable:!0,get:o(function(){return Kn.RequestType3},"get")});Object.defineProperty(tt,"RequestType4",{enumerable:!0,get:o(function(){return Kn.RequestType4},"get")});Object.defineProperty(tt,"RequestType5",{enumerable:!0,get:o(function(){return Kn.RequestType5},"get")});Object.defineProperty(tt,"RequestType6",{enumerable:!0,get:o(function(){return Kn.RequestType6},"get")});Object.defineProperty(tt,"RequestType7",{enumerable:!0,get:o(function(){return Kn.RequestType7},"get")});Object.defineProperty(tt,"RequestType8",{enumerable:!0,get:o(function(){return Kn.RequestType8},"get")});Object.defineProperty(tt,"RequestType9",{enumerable:!0,get:o(function(){return Kn.RequestType9},"get")});Object.defineProperty(tt,"ResponseError",{enumerable:!0,get:o(function(){return Kn.ResponseError},"get")});Object.defineProperty(tt,"ErrorCodes",{enumerable:!0,get:o(function(){return Kn.ErrorCodes},"get")});Object.defineProperty(tt,"NotificationType",{enumerable:!0,get:o(function(){return Kn.NotificationType},"get")});Object.defineProperty(tt,"NotificationType0",{enumerable:!0,get:o(function(){return Kn.NotificationType0},"get")});Object.defineProperty(tt,"NotificationType1",{enumerable:!0,get:o(function(){return Kn.NotificationType1},"get")});Object.defineProperty(tt,"NotificationType2",{enumerable:!0,get:o(function(){return Kn.NotificationType2},"get")});Object.defineProperty(tt,"NotificationType3",{enumerable:!0,get:o(function(){return Kn.NotificationType3},"get")});Object.defineProperty(tt,"NotificationType4",{enumerable:!0,get:o(function(){return Kn.NotificationType4},"get")});Object.defineProperty(tt,"NotificationType5",{enumerable:!0,get:o(function(){return Kn.NotificationType5},"get")});Object.defineProperty(tt,"NotificationType6",{enumerable:!0,get:o(function(){return Kn.NotificationType6},"get")});Object.defineProperty(tt,"NotificationType7",{enumerable:!0,get:o(function(){return Kn.NotificationType7},"get")});Object.defineProperty(tt,"NotificationType8",{enumerable:!0,get:o(function(){return Kn.NotificationType8},"get")});Object.defineProperty(tt,"NotificationType9",{enumerable:!0,get:o(function(){return Kn.NotificationType9},"get")});Object.defineProperty(tt,"ParameterStructures",{enumerable:!0,get:o(function(){return Kn.ParameterStructures},"get")});var GG=bG();Object.defineProperty(tt,"LinkedMap",{enumerable:!0,get:o(function(){return GG.LinkedMap},"get")});Object.defineProperty(tt,"LRUCache",{enumerable:!0,get:o(function(){return GG.LRUCache},"get")});Object.defineProperty(tt,"Touch",{enumerable:!0,get:o(function(){return GG.Touch},"get")});var mit=Vve();Object.defineProperty(tt,"Disposable",{enumerable:!0,get:o(function(){return mit.Disposable},"get")});var n2e=Cm();Object.defineProperty(tt,"Event",{enumerable:!0,get:o(function(){return n2e.Event},"get")});Object.defineProperty(tt,"Emitter",{enumerable:!0,get:o(function(){return n2e.Emitter},"get")});var i2e=y4();Object.defineProperty(tt,"CancellationTokenSource",{enumerable:!0,get:o(function(){return i2e.CancellationTokenSource},"get")});Object.defineProperty(tt,"CancellationToken",{enumerable:!0,get:o(function(){return i2e.CancellationToken},"get")});var a2e=qve();Object.defineProperty(tt,"SharedArraySenderStrategy",{enumerable:!0,get:o(function(){return a2e.SharedArraySenderStrategy},"get")});Object.defineProperty(tt,"SharedArrayReceiverStrategy",{enumerable:!0,get:o(function(){return a2e.SharedArrayReceiverStrategy},"get")});var VG=Wve();Object.defineProperty(tt,"MessageReader",{enumerable:!0,get:o(function(){return VG.MessageReader},"get")});Object.defineProperty(tt,"AbstractMessageReader",{enumerable:!0,get:o(function(){return VG.AbstractMessageReader},"get")});Object.defineProperty(tt,"ReadableStreamMessageReader",{enumerable:!0,get:o(function(){return VG.ReadableStreamMessageReader},"get")});var qG=Kve();Object.defineProperty(tt,"MessageWriter",{enumerable:!0,get:o(function(){return qG.MessageWriter},"get")});Object.defineProperty(tt,"AbstractMessageWriter",{enumerable:!0,get:o(function(){return qG.AbstractMessageWriter},"get")});Object.defineProperty(tt,"WriteableStreamMessageWriter",{enumerable:!0,get:o(function(){return qG.WriteableStreamMessageWriter},"get")});var git=Qve();Object.defineProperty(tt,"AbstractMessageBuffer",{enumerable:!0,get:o(function(){return git.AbstractMessageBuffer},"get")});var Ha=r2e();Object.defineProperty(tt,"ConnectionStrategy",{enumerable:!0,get:o(function(){return Ha.ConnectionStrategy},"get")});Object.defineProperty(tt,"ConnectionOptions",{enumerable:!0,get:o(function(){return Ha.ConnectionOptions},"get")});Object.defineProperty(tt,"NullLogger",{enumerable:!0,get:o(function(){return Ha.NullLogger},"get")});Object.defineProperty(tt,"createMessageConnection",{enumerable:!0,get:o(function(){return Ha.createMessageConnection},"get")});Object.defineProperty(tt,"ProgressToken",{enumerable:!0,get:o(function(){return Ha.ProgressToken},"get")});Object.defineProperty(tt,"ProgressType",{enumerable:!0,get:o(function(){return Ha.ProgressType},"get")});Object.defineProperty(tt,"Trace",{enumerable:!0,get:o(function(){return Ha.Trace},"get")});Object.defineProperty(tt,"TraceValues",{enumerable:!0,get:o(function(){return Ha.TraceValues},"get")});Object.defineProperty(tt,"TraceFormat",{enumerable:!0,get:o(function(){return Ha.TraceFormat},"get")});Object.defineProperty(tt,"SetTraceNotification",{enumerable:!0,get:o(function(){return Ha.SetTraceNotification},"get")});Object.defineProperty(tt,"LogTraceNotification",{enumerable:!0,get:o(function(){return Ha.LogTraceNotification},"get")});Object.defineProperty(tt,"ConnectionErrors",{enumerable:!0,get:o(function(){return Ha.ConnectionErrors},"get")});Object.defineProperty(tt,"ConnectionError",{enumerable:!0,get:o(function(){return Ha.ConnectionError},"get")});Object.defineProperty(tt,"CancellationReceiverStrategy",{enumerable:!0,get:o(function(){return Ha.CancellationReceiverStrategy},"get")});Object.defineProperty(tt,"CancellationSenderStrategy",{enumerable:!0,get:o(function(){return Ha.CancellationSenderStrategy},"get")});Object.defineProperty(tt,"CancellationStrategy",{enumerable:!0,get:o(function(){return Ha.CancellationStrategy},"get")});Object.defineProperty(tt,"MessageStrategy",{enumerable:!0,get:o(function(){return Ha.MessageStrategy},"get")});var yit=Xd();tt.RAL=yit.default});var o2e=nr(YG=>{"use strict";Object.defineProperty(YG,"__esModule",{value:!0});var Vu=DA(),RA=class t extends Vu.AbstractMessageBuffer{static{o(this,"MessageBuffer")}constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return t.emptyBuffer}fromString(e,r){return new TextEncoder().encode(e)}toString(e,r){return r==="ascii"?this.asciiDecoder.decode(e):new TextDecoder(r).decode(e)}asNative(e,r){return r===void 0?e:e.slice(0,r)}allocNative(e){return new Uint8Array(e)}};RA.emptyBuffer=new Uint8Array(0);var UG=class{static{o(this,"ReadableStreamWrapper")}constructor(e){this.socket=e,this._onData=new Vu.Emitter,this._messageListener=r=>{r.data.arrayBuffer().then(i=>{this._onData.fire(new Uint8Array(i))},()=>{(0,Vu.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),Vu.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),Vu.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),Vu.Disposable.create(()=>this.socket.removeEventListener("end",e))}onData(e){return this._onData.event(e)}},WG=class{static{o(this,"WritableStreamWrapper")}constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),Vu.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),Vu.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),Vu.Disposable.create(()=>this.socket.removeEventListener("end",e))}write(e,r){if(typeof e=="string"){if(r!==void 0&&r!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${r}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}},vit=new TextEncoder,s2e=Object.freeze({messageBuffer:Object.freeze({create:o(t=>new RA(t),"create")}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:o((t,e)=>{if(e.charset!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${e.charset}`);return Promise.resolve(vit.encode(JSON.stringify(t,void 0,0)))},"encode")}),decoder:Object.freeze({name:"application/json",decode:o((t,e)=>{if(!(t instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(e.charset).decode(t)))},"decode")})}),stream:Object.freeze({asReadableStream:o(t=>new UG(t),"asReadableStream"),asWritableStream:o(t=>new WG(t),"asWritableStream")}),console,timer:Object.freeze({setTimeout(t,e,...r){let n=setTimeout(t,e,...r);return{dispose:o(()=>clearTimeout(n),"dispose")}},setImmediate(t,...e){let r=setTimeout(t,0,...e);return{dispose:o(()=>clearTimeout(r),"dispose")}},setInterval(t,e,...r){let n=setInterval(t,e,...r);return{dispose:o(()=>clearInterval(n),"dispose")}}})});function HG(){return s2e}o(HG,"RIL");(function(t){function e(){Vu.RAL.install(s2e)}o(e,"install"),t.install=e})(HG||(HG={}));YG.default=HG});var Nm=nr(nl=>{"use strict";var xit=nl&&nl.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),bit=nl&&nl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&xit(e,t,r)};Object.defineProperty(nl,"__esModule",{value:!0});nl.createMessageConnection=nl.BrowserMessageWriter=nl.BrowserMessageReader=void 0;var Tit=o2e();Tit.default.install();var pv=DA();bit(DA(),nl);var jG=class extends pv.AbstractMessageReader{static{o(this,"BrowserMessageReader")}constructor(e){super(),this._onData=new pv.Emitter,this._messageListener=r=>{this._onData.fire(r.data)},e.addEventListener("error",r=>this.fireError(r)),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}};nl.BrowserMessageReader=jG;var XG=class extends pv.AbstractMessageWriter{static{o(this,"BrowserMessageWriter")}constructor(e){super(),this.port=e,this.errorCount=0,e.addEventListener("error",r=>this.fireError(r))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(r){return this.handleError(r,e),Promise.reject(r)}}handleError(e,r){this.errorCount++,this.fireError(e,r,this.errorCount)}end(){}};nl.BrowserMessageWriter=XG;function wit(t,e,r,n){return r===void 0&&(r=pv.NullLogger),pv.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,pv.createMessageConnection)(t,e,r,n)}o(wit,"createMessageConnection");nl.createMessageConnection=wit});var KG=nr((tyr,l2e)=>{"use strict";l2e.exports=Nm()});var mi=nr(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.ProtocolNotificationType=Co.ProtocolNotificationType0=Co.ProtocolRequestType=Co.ProtocolRequestType0=Co.RegistrationType=Co.MessageDirection=void 0;var mv=Nm(),c2e;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(c2e||(Co.MessageDirection=c2e={}));var QG=class{static{o(this,"RegistrationType")}constructor(e){this.method=e}};Co.RegistrationType=QG;var ZG=class extends mv.RequestType0{static{o(this,"ProtocolRequestType0")}constructor(e){super(e)}};Co.ProtocolRequestType0=ZG;var JG=class extends mv.RequestType{static{o(this,"ProtocolRequestType")}constructor(e){super(e,mv.ParameterStructures.byName)}};Co.ProtocolRequestType=JG;var eV=class extends mv.NotificationType0{static{o(this,"ProtocolNotificationType0")}constructor(e){super(e)}};Co.ProtocolNotificationType0=eV;var tV=class extends mv.NotificationType{static{o(this,"ProtocolNotificationType")}constructor(e){super(e,mv.ParameterStructures.byName)}};Co.ProtocolNotificationType=tV});var LA=nr(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.objectLiteral=Yi.typedArray=Yi.stringArray=Yi.array=Yi.func=Yi.error=Yi.number=Yi.string=Yi.boolean=void 0;function kit(t){return t===!0||t===!1}o(kit,"boolean");Yi.boolean=kit;function u2e(t){return typeof t=="string"||t instanceof String}o(u2e,"string");Yi.string=u2e;function Eit(t){return typeof t=="number"||t instanceof Number}o(Eit,"number");Yi.number=Eit;function Sit(t){return t instanceof Error}o(Sit,"error");Yi.error=Sit;function Cit(t){return typeof t=="function"}o(Cit,"func");Yi.func=Cit;function h2e(t){return Array.isArray(t)}o(h2e,"array");Yi.array=h2e;function Ait(t){return h2e(t)&&t.every(e=>u2e(e))}o(Ait,"stringArray");Yi.stringArray=Ait;function _it(t,e){return Array.isArray(t)&&t.every(e)}o(_it,"typedArray");Yi.typedArray=_it;function Dit(t){return t!==null&&typeof t=="object"}o(Dit,"objectLiteral");Yi.objectLiteral=Dit});var p2e=nr(NA=>{"use strict";Object.defineProperty(NA,"__esModule",{value:!0});NA.ImplementationRequest=void 0;var f2e=mi(),d2e;(function(t){t.method="textDocument/implementation",t.messageDirection=f2e.MessageDirection.clientToServer,t.type=new f2e.ProtocolRequestType(t.method)})(d2e||(NA.ImplementationRequest=d2e={}))});var y2e=nr(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.TypeDefinitionRequest=void 0;var m2e=mi(),g2e;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=m2e.MessageDirection.clientToServer,t.type=new m2e.ProtocolRequestType(t.method)})(g2e||(MA.TypeDefinitionRequest=g2e={}))});var b2e=nr(gv=>{"use strict";Object.defineProperty(gv,"__esModule",{value:!0});gv.DidChangeWorkspaceFoldersNotification=gv.WorkspaceFoldersRequest=void 0;var IA=mi(),v2e;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=IA.MessageDirection.serverToClient,t.type=new IA.ProtocolRequestType0(t.method)})(v2e||(gv.WorkspaceFoldersRequest=v2e={}));var x2e;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=IA.MessageDirection.clientToServer,t.type=new IA.ProtocolNotificationType(t.method)})(x2e||(gv.DidChangeWorkspaceFoldersNotification=x2e={}))});var k2e=nr(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.ConfigurationRequest=void 0;var T2e=mi(),w2e;(function(t){t.method="workspace/configuration",t.messageDirection=T2e.MessageDirection.serverToClient,t.type=new T2e.ProtocolRequestType(t.method)})(w2e||(OA.ConfigurationRequest=w2e={}))});var C2e=nr(yv=>{"use strict";Object.defineProperty(yv,"__esModule",{value:!0});yv.ColorPresentationRequest=yv.DocumentColorRequest=void 0;var PA=mi(),E2e;(function(t){t.method="textDocument/documentColor",t.messageDirection=PA.MessageDirection.clientToServer,t.type=new PA.ProtocolRequestType(t.method)})(E2e||(yv.DocumentColorRequest=E2e={}));var S2e;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=PA.MessageDirection.clientToServer,t.type=new PA.ProtocolRequestType(t.method)})(S2e||(yv.ColorPresentationRequest=S2e={}))});var D2e=nr(vv=>{"use strict";Object.defineProperty(vv,"__esModule",{value:!0});vv.FoldingRangeRefreshRequest=vv.FoldingRangeRequest=void 0;var BA=mi(),A2e;(function(t){t.method="textDocument/foldingRange",t.messageDirection=BA.MessageDirection.clientToServer,t.type=new BA.ProtocolRequestType(t.method)})(A2e||(vv.FoldingRangeRequest=A2e={}));var _2e;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=BA.MessageDirection.serverToClient,t.type=new BA.ProtocolRequestType0(t.method)})(_2e||(vv.FoldingRangeRefreshRequest=_2e={}))});var N2e=nr(FA=>{"use strict";Object.defineProperty(FA,"__esModule",{value:!0});FA.DeclarationRequest=void 0;var R2e=mi(),L2e;(function(t){t.method="textDocument/declaration",t.messageDirection=R2e.MessageDirection.clientToServer,t.type=new R2e.ProtocolRequestType(t.method)})(L2e||(FA.DeclarationRequest=L2e={}))});var O2e=nr($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.SelectionRangeRequest=void 0;var M2e=mi(),I2e;(function(t){t.method="textDocument/selectionRange",t.messageDirection=M2e.MessageDirection.clientToServer,t.type=new M2e.ProtocolRequestType(t.method)})(I2e||($A.SelectionRangeRequest=I2e={}))});var $2e=nr(ep=>{"use strict";Object.defineProperty(ep,"__esModule",{value:!0});ep.WorkDoneProgressCancelNotification=ep.WorkDoneProgressCreateRequest=ep.WorkDoneProgress=void 0;var Rit=Nm(),zA=mi(),P2e;(function(t){t.type=new Rit.ProgressType;function e(r){return r===t.type}o(e,"is"),t.is=e})(P2e||(ep.WorkDoneProgress=P2e={}));var B2e;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=zA.MessageDirection.serverToClient,t.type=new zA.ProtocolRequestType(t.method)})(B2e||(ep.WorkDoneProgressCreateRequest=B2e={}));var F2e;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=zA.MessageDirection.clientToServer,t.type=new zA.ProtocolNotificationType(t.method)})(F2e||(ep.WorkDoneProgressCancelNotification=F2e={}))});var q2e=nr(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});tp.CallHierarchyOutgoingCallsRequest=tp.CallHierarchyIncomingCallsRequest=tp.CallHierarchyPrepareRequest=void 0;var xv=mi(),z2e;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=xv.MessageDirection.clientToServer,t.type=new xv.ProtocolRequestType(t.method)})(z2e||(tp.CallHierarchyPrepareRequest=z2e={}));var G2e;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=xv.MessageDirection.clientToServer,t.type=new xv.ProtocolRequestType(t.method)})(G2e||(tp.CallHierarchyIncomingCallsRequest=G2e={}));var V2e;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=xv.MessageDirection.clientToServer,t.type=new xv.ProtocolRequestType(t.method)})(V2e||(tp.CallHierarchyOutgoingCallsRequest=V2e={}))});var X2e=nr(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.SemanticTokensRefreshRequest=Ao.SemanticTokensRangeRequest=Ao.SemanticTokensDeltaRequest=Ao.SemanticTokensRequest=Ao.SemanticTokensRegistrationType=Ao.TokenFormat=void 0;var tf=mi(),U2e;(function(t){t.Relative="relative"})(U2e||(Ao.TokenFormat=U2e={}));var G4;(function(t){t.method="textDocument/semanticTokens",t.type=new tf.RegistrationType(t.method)})(G4||(Ao.SemanticTokensRegistrationType=G4={}));var W2e;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=tf.MessageDirection.clientToServer,t.type=new tf.ProtocolRequestType(t.method),t.registrationMethod=G4.method})(W2e||(Ao.SemanticTokensRequest=W2e={}));var H2e;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=tf.MessageDirection.clientToServer,t.type=new tf.ProtocolRequestType(t.method),t.registrationMethod=G4.method})(H2e||(Ao.SemanticTokensDeltaRequest=H2e={}));var Y2e;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=tf.MessageDirection.clientToServer,t.type=new tf.ProtocolRequestType(t.method),t.registrationMethod=G4.method})(Y2e||(Ao.SemanticTokensRangeRequest=Y2e={}));var j2e;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=tf.MessageDirection.serverToClient,t.type=new tf.ProtocolRequestType0(t.method)})(j2e||(Ao.SemanticTokensRefreshRequest=j2e={}))});var Z2e=nr(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.ShowDocumentRequest=void 0;var K2e=mi(),Q2e;(function(t){t.method="window/showDocument",t.messageDirection=K2e.MessageDirection.serverToClient,t.type=new K2e.ProtocolRequestType(t.method)})(Q2e||(GA.ShowDocumentRequest=Q2e={}))});var txe=nr(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.LinkedEditingRangeRequest=void 0;var J2e=mi(),exe;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=J2e.MessageDirection.clientToServer,t.type=new J2e.ProtocolRequestType(t.method)})(exe||(VA.LinkedEditingRangeRequest=exe={}))});var cxe=nr(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.WillDeleteFilesRequest=ps.DidDeleteFilesNotification=ps.DidRenameFilesNotification=ps.WillRenameFilesRequest=ps.DidCreateFilesNotification=ps.WillCreateFilesRequest=ps.FileOperationPatternKind=void 0;var Gl=mi(),rxe;(function(t){t.file="file",t.folder="folder"})(rxe||(ps.FileOperationPatternKind=rxe={}));var nxe;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolRequestType(t.method)})(nxe||(ps.WillCreateFilesRequest=nxe={}));var ixe;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolNotificationType(t.method)})(ixe||(ps.DidCreateFilesNotification=ixe={}));var axe;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolRequestType(t.method)})(axe||(ps.WillRenameFilesRequest=axe={}));var sxe;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolNotificationType(t.method)})(sxe||(ps.DidRenameFilesNotification=sxe={}));var oxe;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolNotificationType(t.method)})(oxe||(ps.DidDeleteFilesNotification=oxe={}));var lxe;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolRequestType(t.method)})(lxe||(ps.WillDeleteFilesRequest=lxe={}))});var pxe=nr(rp=>{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});rp.MonikerRequest=rp.MonikerKind=rp.UniquenessLevel=void 0;var uxe=mi(),hxe;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(hxe||(rp.UniquenessLevel=hxe={}));var fxe;(function(t){t.$import="import",t.$export="export",t.local="local"})(fxe||(rp.MonikerKind=fxe={}));var dxe;(function(t){t.method="textDocument/moniker",t.messageDirection=uxe.MessageDirection.clientToServer,t.type=new uxe.ProtocolRequestType(t.method)})(dxe||(rp.MonikerRequest=dxe={}))});var vxe=nr(np=>{"use strict";Object.defineProperty(np,"__esModule",{value:!0});np.TypeHierarchySubtypesRequest=np.TypeHierarchySupertypesRequest=np.TypeHierarchyPrepareRequest=void 0;var bv=mi(),mxe;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=bv.MessageDirection.clientToServer,t.type=new bv.ProtocolRequestType(t.method)})(mxe||(np.TypeHierarchyPrepareRequest=mxe={}));var gxe;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=bv.MessageDirection.clientToServer,t.type=new bv.ProtocolRequestType(t.method)})(gxe||(np.TypeHierarchySupertypesRequest=gxe={}));var yxe;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=bv.MessageDirection.clientToServer,t.type=new bv.ProtocolRequestType(t.method)})(yxe||(np.TypeHierarchySubtypesRequest=yxe={}))});var Txe=nr(Tv=>{"use strict";Object.defineProperty(Tv,"__esModule",{value:!0});Tv.InlineValueRefreshRequest=Tv.InlineValueRequest=void 0;var qA=mi(),xxe;(function(t){t.method="textDocument/inlineValue",t.messageDirection=qA.MessageDirection.clientToServer,t.type=new qA.ProtocolRequestType(t.method)})(xxe||(Tv.InlineValueRequest=xxe={}));var bxe;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=qA.MessageDirection.serverToClient,t.type=new qA.ProtocolRequestType0(t.method)})(bxe||(Tv.InlineValueRefreshRequest=bxe={}))});var Sxe=nr(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});ip.InlayHintRefreshRequest=ip.InlayHintResolveRequest=ip.InlayHintRequest=void 0;var wv=mi(),wxe;(function(t){t.method="textDocument/inlayHint",t.messageDirection=wv.MessageDirection.clientToServer,t.type=new wv.ProtocolRequestType(t.method)})(wxe||(ip.InlayHintRequest=wxe={}));var kxe;(function(t){t.method="inlayHint/resolve",t.messageDirection=wv.MessageDirection.clientToServer,t.type=new wv.ProtocolRequestType(t.method)})(kxe||(ip.InlayHintResolveRequest=kxe={}));var Exe;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=wv.MessageDirection.serverToClient,t.type=new wv.ProtocolRequestType0(t.method)})(Exe||(ip.InlayHintRefreshRequest=Exe={}))});var Nxe=nr(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});Vl.DiagnosticRefreshRequest=Vl.WorkspaceDiagnosticRequest=Vl.DocumentDiagnosticRequest=Vl.DocumentDiagnosticReportKind=Vl.DiagnosticServerCancellationData=void 0;var Lxe=Nm(),Lit=LA(),kv=mi(),Cxe;(function(t){function e(r){let n=r;return n&&Lit.boolean(n.retriggerRequest)}o(e,"is"),t.is=e})(Cxe||(Vl.DiagnosticServerCancellationData=Cxe={}));var Axe;(function(t){t.Full="full",t.Unchanged="unchanged"})(Axe||(Vl.DocumentDiagnosticReportKind=Axe={}));var _xe;(function(t){t.method="textDocument/diagnostic",t.messageDirection=kv.MessageDirection.clientToServer,t.type=new kv.ProtocolRequestType(t.method),t.partialResult=new Lxe.ProgressType})(_xe||(Vl.DocumentDiagnosticRequest=_xe={}));var Dxe;(function(t){t.method="workspace/diagnostic",t.messageDirection=kv.MessageDirection.clientToServer,t.type=new kv.ProtocolRequestType(t.method),t.partialResult=new Lxe.ProgressType})(Dxe||(Vl.WorkspaceDiagnosticRequest=Dxe={}));var Rxe;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=kv.MessageDirection.serverToClient,t.type=new kv.ProtocolRequestType0(t.method)})(Rxe||(Vl.DiagnosticRefreshRequest=Rxe={}))});var $xe=nr(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.DidCloseNotebookDocumentNotification=Mi.DidSaveNotebookDocumentNotification=Mi.DidChangeNotebookDocumentNotification=Mi.NotebookCellArrayChange=Mi.DidOpenNotebookDocumentNotification=Mi.NotebookDocumentSyncRegistrationType=Mi.NotebookDocument=Mi.NotebookCell=Mi.ExecutionSummary=Mi.NotebookCellKind=void 0;var V4=(Zy(),G3(K6)),Ic=LA(),qu=mi(),rV;(function(t){t.Markup=1,t.Code=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(rV||(Mi.NotebookCellKind=rV={}));var nV;(function(t){function e(i,a){let s={executionOrder:i};return(a===!0||a===!1)&&(s.success=a),s}o(e,"create"),t.create=e;function r(i){let a=i;return Ic.objectLiteral(a)&&V4.uinteger.is(a.executionOrder)&&(a.success===void 0||Ic.boolean(a.success))}o(r,"is"),t.is=r;function n(i,a){return i===a?!0:i==null||a===null||a===void 0?!1:i.executionOrder===a.executionOrder&&i.success===a.success}o(n,"equals"),t.equals=n})(nV||(Mi.ExecutionSummary=nV={}));var UA;(function(t){function e(a,s){return{kind:a,document:s}}o(e,"create"),t.create=e;function r(a){let s=a;return Ic.objectLiteral(s)&&rV.is(s.kind)&&V4.DocumentUri.is(s.document)&&(s.metadata===void 0||Ic.objectLiteral(s.metadata))}o(r,"is"),t.is=r;function n(a,s){let l=new Set;return a.document!==s.document&&l.add("document"),a.kind!==s.kind&&l.add("kind"),a.executionSummary!==s.executionSummary&&l.add("executionSummary"),(a.metadata!==void 0||s.metadata!==void 0)&&!i(a.metadata,s.metadata)&&l.add("metadata"),(a.executionSummary!==void 0||s.executionSummary!==void 0)&&!nV.equals(a.executionSummary,s.executionSummary)&&l.add("executionSummary"),l}o(n,"diff"),t.diff=n;function i(a,s){if(a===s)return!0;if(a==null||s===null||s===void 0||typeof a!=typeof s||typeof a!="object")return!1;let l=Array.isArray(a),u=Array.isArray(s);if(l!==u)return!1;if(l&&u){if(a.length!==s.length)return!1;for(let h=0;h{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.InlineCompletionRequest=void 0;var zxe=mi(),Gxe;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=zxe.MessageDirection.clientToServer,t.type=new zxe.ProtocolRequestType(t.method)})(Gxe||(WA.InlineCompletionRequest=Gxe={}))});var tTe=nr(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.WorkspaceSymbolRequest=Ce.CodeActionResolveRequest=Ce.CodeActionRequest=Ce.DocumentSymbolRequest=Ce.DocumentHighlightRequest=Ce.ReferencesRequest=Ce.DefinitionRequest=Ce.SignatureHelpRequest=Ce.SignatureHelpTriggerKind=Ce.HoverRequest=Ce.CompletionResolveRequest=Ce.CompletionRequest=Ce.CompletionTriggerKind=Ce.PublishDiagnosticsNotification=Ce.WatchKind=Ce.RelativePattern=Ce.FileChangeType=Ce.DidChangeWatchedFilesNotification=Ce.WillSaveTextDocumentWaitUntilRequest=Ce.WillSaveTextDocumentNotification=Ce.TextDocumentSaveReason=Ce.DidSaveTextDocumentNotification=Ce.DidCloseTextDocumentNotification=Ce.DidChangeTextDocumentNotification=Ce.TextDocumentContentChangeEvent=Ce.DidOpenTextDocumentNotification=Ce.TextDocumentSyncKind=Ce.TelemetryEventNotification=Ce.LogMessageNotification=Ce.ShowMessageRequest=Ce.ShowMessageNotification=Ce.MessageType=Ce.DidChangeConfigurationNotification=Ce.ExitNotification=Ce.ShutdownRequest=Ce.InitializedNotification=Ce.InitializeErrorCodes=Ce.InitializeRequest=Ce.WorkDoneProgressOptions=Ce.TextDocumentRegistrationOptions=Ce.StaticRegistrationOptions=Ce.PositionEncodingKind=Ce.FailureHandlingKind=Ce.ResourceOperationKind=Ce.UnregistrationRequest=Ce.RegistrationRequest=Ce.DocumentSelector=Ce.NotebookCellTextDocumentFilter=Ce.NotebookDocumentFilter=Ce.TextDocumentFilter=void 0;Ce.MonikerRequest=Ce.MonikerKind=Ce.UniquenessLevel=Ce.WillDeleteFilesRequest=Ce.DidDeleteFilesNotification=Ce.WillRenameFilesRequest=Ce.DidRenameFilesNotification=Ce.WillCreateFilesRequest=Ce.DidCreateFilesNotification=Ce.FileOperationPatternKind=Ce.LinkedEditingRangeRequest=Ce.ShowDocumentRequest=Ce.SemanticTokensRegistrationType=Ce.SemanticTokensRefreshRequest=Ce.SemanticTokensRangeRequest=Ce.SemanticTokensDeltaRequest=Ce.SemanticTokensRequest=Ce.TokenFormat=Ce.CallHierarchyPrepareRequest=Ce.CallHierarchyOutgoingCallsRequest=Ce.CallHierarchyIncomingCallsRequest=Ce.WorkDoneProgressCancelNotification=Ce.WorkDoneProgressCreateRequest=Ce.WorkDoneProgress=Ce.SelectionRangeRequest=Ce.DeclarationRequest=Ce.FoldingRangeRefreshRequest=Ce.FoldingRangeRequest=Ce.ColorPresentationRequest=Ce.DocumentColorRequest=Ce.ConfigurationRequest=Ce.DidChangeWorkspaceFoldersNotification=Ce.WorkspaceFoldersRequest=Ce.TypeDefinitionRequest=Ce.ImplementationRequest=Ce.ApplyWorkspaceEditRequest=Ce.ExecuteCommandRequest=Ce.PrepareRenameRequest=Ce.RenameRequest=Ce.PrepareSupportDefaultBehavior=Ce.DocumentOnTypeFormattingRequest=Ce.DocumentRangesFormattingRequest=Ce.DocumentRangeFormattingRequest=Ce.DocumentFormattingRequest=Ce.DocumentLinkResolveRequest=Ce.DocumentLinkRequest=Ce.CodeLensRefreshRequest=Ce.CodeLensResolveRequest=Ce.CodeLensRequest=Ce.WorkspaceSymbolResolveRequest=void 0;Ce.InlineCompletionRequest=Ce.DidCloseNotebookDocumentNotification=Ce.DidSaveNotebookDocumentNotification=Ce.DidChangeNotebookDocumentNotification=Ce.NotebookCellArrayChange=Ce.DidOpenNotebookDocumentNotification=Ce.NotebookDocumentSyncRegistrationType=Ce.NotebookDocument=Ce.NotebookCell=Ce.ExecutionSummary=Ce.NotebookCellKind=Ce.DiagnosticRefreshRequest=Ce.WorkspaceDiagnosticRequest=Ce.DocumentDiagnosticRequest=Ce.DocumentDiagnosticReportKind=Ce.DiagnosticServerCancellationData=Ce.InlayHintRefreshRequest=Ce.InlayHintResolveRequest=Ce.InlayHintRequest=Ce.InlineValueRefreshRequest=Ce.InlineValueRequest=Ce.TypeHierarchySupertypesRequest=Ce.TypeHierarchySubtypesRequest=Ce.TypeHierarchyPrepareRequest=void 0;var Et=mi(),qxe=(Zy(),G3(K6)),Aa=LA(),Nit=p2e();Object.defineProperty(Ce,"ImplementationRequest",{enumerable:!0,get:o(function(){return Nit.ImplementationRequest},"get")});var Mit=y2e();Object.defineProperty(Ce,"TypeDefinitionRequest",{enumerable:!0,get:o(function(){return Mit.TypeDefinitionRequest},"get")});var Qbe=b2e();Object.defineProperty(Ce,"WorkspaceFoldersRequest",{enumerable:!0,get:o(function(){return Qbe.WorkspaceFoldersRequest},"get")});Object.defineProperty(Ce,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:o(function(){return Qbe.DidChangeWorkspaceFoldersNotification},"get")});var Iit=k2e();Object.defineProperty(Ce,"ConfigurationRequest",{enumerable:!0,get:o(function(){return Iit.ConfigurationRequest},"get")});var Zbe=C2e();Object.defineProperty(Ce,"DocumentColorRequest",{enumerable:!0,get:o(function(){return Zbe.DocumentColorRequest},"get")});Object.defineProperty(Ce,"ColorPresentationRequest",{enumerable:!0,get:o(function(){return Zbe.ColorPresentationRequest},"get")});var Jbe=D2e();Object.defineProperty(Ce,"FoldingRangeRequest",{enumerable:!0,get:o(function(){return Jbe.FoldingRangeRequest},"get")});Object.defineProperty(Ce,"FoldingRangeRefreshRequest",{enumerable:!0,get:o(function(){return Jbe.FoldingRangeRefreshRequest},"get")});var Oit=N2e();Object.defineProperty(Ce,"DeclarationRequest",{enumerable:!0,get:o(function(){return Oit.DeclarationRequest},"get")});var Pit=O2e();Object.defineProperty(Ce,"SelectionRangeRequest",{enumerable:!0,get:o(function(){return Pit.SelectionRangeRequest},"get")});var lV=$2e();Object.defineProperty(Ce,"WorkDoneProgress",{enumerable:!0,get:o(function(){return lV.WorkDoneProgress},"get")});Object.defineProperty(Ce,"WorkDoneProgressCreateRequest",{enumerable:!0,get:o(function(){return lV.WorkDoneProgressCreateRequest},"get")});Object.defineProperty(Ce,"WorkDoneProgressCancelNotification",{enumerable:!0,get:o(function(){return lV.WorkDoneProgressCancelNotification},"get")});var cV=q2e();Object.defineProperty(Ce,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:o(function(){return cV.CallHierarchyIncomingCallsRequest},"get")});Object.defineProperty(Ce,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:o(function(){return cV.CallHierarchyOutgoingCallsRequest},"get")});Object.defineProperty(Ce,"CallHierarchyPrepareRequest",{enumerable:!0,get:o(function(){return cV.CallHierarchyPrepareRequest},"get")});var Sv=X2e();Object.defineProperty(Ce,"TokenFormat",{enumerable:!0,get:o(function(){return Sv.TokenFormat},"get")});Object.defineProperty(Ce,"SemanticTokensRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRequest},"get")});Object.defineProperty(Ce,"SemanticTokensDeltaRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensDeltaRequest},"get")});Object.defineProperty(Ce,"SemanticTokensRangeRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRangeRequest},"get")});Object.defineProperty(Ce,"SemanticTokensRefreshRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRefreshRequest},"get")});Object.defineProperty(Ce,"SemanticTokensRegistrationType",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRegistrationType},"get")});var Bit=Z2e();Object.defineProperty(Ce,"ShowDocumentRequest",{enumerable:!0,get:o(function(){return Bit.ShowDocumentRequest},"get")});var Fit=txe();Object.defineProperty(Ce,"LinkedEditingRangeRequest",{enumerable:!0,get:o(function(){return Fit.LinkedEditingRangeRequest},"get")});var Mm=cxe();Object.defineProperty(Ce,"FileOperationPatternKind",{enumerable:!0,get:o(function(){return Mm.FileOperationPatternKind},"get")});Object.defineProperty(Ce,"DidCreateFilesNotification",{enumerable:!0,get:o(function(){return Mm.DidCreateFilesNotification},"get")});Object.defineProperty(Ce,"WillCreateFilesRequest",{enumerable:!0,get:o(function(){return Mm.WillCreateFilesRequest},"get")});Object.defineProperty(Ce,"DidRenameFilesNotification",{enumerable:!0,get:o(function(){return Mm.DidRenameFilesNotification},"get")});Object.defineProperty(Ce,"WillRenameFilesRequest",{enumerable:!0,get:o(function(){return Mm.WillRenameFilesRequest},"get")});Object.defineProperty(Ce,"DidDeleteFilesNotification",{enumerable:!0,get:o(function(){return Mm.DidDeleteFilesNotification},"get")});Object.defineProperty(Ce,"WillDeleteFilesRequest",{enumerable:!0,get:o(function(){return Mm.WillDeleteFilesRequest},"get")});var uV=pxe();Object.defineProperty(Ce,"UniquenessLevel",{enumerable:!0,get:o(function(){return uV.UniquenessLevel},"get")});Object.defineProperty(Ce,"MonikerKind",{enumerable:!0,get:o(function(){return uV.MonikerKind},"get")});Object.defineProperty(Ce,"MonikerRequest",{enumerable:!0,get:o(function(){return uV.MonikerRequest},"get")});var hV=vxe();Object.defineProperty(Ce,"TypeHierarchyPrepareRequest",{enumerable:!0,get:o(function(){return hV.TypeHierarchyPrepareRequest},"get")});Object.defineProperty(Ce,"TypeHierarchySubtypesRequest",{enumerable:!0,get:o(function(){return hV.TypeHierarchySubtypesRequest},"get")});Object.defineProperty(Ce,"TypeHierarchySupertypesRequest",{enumerable:!0,get:o(function(){return hV.TypeHierarchySupertypesRequest},"get")});var eTe=Txe();Object.defineProperty(Ce,"InlineValueRequest",{enumerable:!0,get:o(function(){return eTe.InlineValueRequest},"get")});Object.defineProperty(Ce,"InlineValueRefreshRequest",{enumerable:!0,get:o(function(){return eTe.InlineValueRefreshRequest},"get")});var fV=Sxe();Object.defineProperty(Ce,"InlayHintRequest",{enumerable:!0,get:o(function(){return fV.InlayHintRequest},"get")});Object.defineProperty(Ce,"InlayHintResolveRequest",{enumerable:!0,get:o(function(){return fV.InlayHintResolveRequest},"get")});Object.defineProperty(Ce,"InlayHintRefreshRequest",{enumerable:!0,get:o(function(){return fV.InlayHintRefreshRequest},"get")});var q4=Nxe();Object.defineProperty(Ce,"DiagnosticServerCancellationData",{enumerable:!0,get:o(function(){return q4.DiagnosticServerCancellationData},"get")});Object.defineProperty(Ce,"DocumentDiagnosticReportKind",{enumerable:!0,get:o(function(){return q4.DocumentDiagnosticReportKind},"get")});Object.defineProperty(Ce,"DocumentDiagnosticRequest",{enumerable:!0,get:o(function(){return q4.DocumentDiagnosticRequest},"get")});Object.defineProperty(Ce,"WorkspaceDiagnosticRequest",{enumerable:!0,get:o(function(){return q4.WorkspaceDiagnosticRequest},"get")});Object.defineProperty(Ce,"DiagnosticRefreshRequest",{enumerable:!0,get:o(function(){return q4.DiagnosticRefreshRequest},"get")});var Uu=$xe();Object.defineProperty(Ce,"NotebookCellKind",{enumerable:!0,get:o(function(){return Uu.NotebookCellKind},"get")});Object.defineProperty(Ce,"ExecutionSummary",{enumerable:!0,get:o(function(){return Uu.ExecutionSummary},"get")});Object.defineProperty(Ce,"NotebookCell",{enumerable:!0,get:o(function(){return Uu.NotebookCell},"get")});Object.defineProperty(Ce,"NotebookDocument",{enumerable:!0,get:o(function(){return Uu.NotebookDocument},"get")});Object.defineProperty(Ce,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:o(function(){return Uu.NotebookDocumentSyncRegistrationType},"get")});Object.defineProperty(Ce,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidOpenNotebookDocumentNotification},"get")});Object.defineProperty(Ce,"NotebookCellArrayChange",{enumerable:!0,get:o(function(){return Uu.NotebookCellArrayChange},"get")});Object.defineProperty(Ce,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidChangeNotebookDocumentNotification},"get")});Object.defineProperty(Ce,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidSaveNotebookDocumentNotification},"get")});Object.defineProperty(Ce,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidCloseNotebookDocumentNotification},"get")});var $it=Vxe();Object.defineProperty(Ce,"InlineCompletionRequest",{enumerable:!0,get:o(function(){return $it.InlineCompletionRequest},"get")});var iV;(function(t){function e(r){let n=r;return Aa.string(n)||Aa.string(n.language)||Aa.string(n.scheme)||Aa.string(n.pattern)}o(e,"is"),t.is=e})(iV||(Ce.TextDocumentFilter=iV={}));var aV;(function(t){function e(r){let n=r;return Aa.objectLiteral(n)&&(Aa.string(n.notebookType)||Aa.string(n.scheme)||Aa.string(n.pattern))}o(e,"is"),t.is=e})(aV||(Ce.NotebookDocumentFilter=aV={}));var sV;(function(t){function e(r){let n=r;return Aa.objectLiteral(n)&&(Aa.string(n.notebook)||aV.is(n.notebook))&&(n.language===void 0||Aa.string(n.language))}o(e,"is"),t.is=e})(sV||(Ce.NotebookCellTextDocumentFilter=sV={}));var oV;(function(t){function e(r){if(!Array.isArray(r))return!1;for(let n of r)if(!Aa.string(n)&&!iV.is(n)&&!sV.is(n))return!1;return!0}o(e,"is"),t.is=e})(oV||(Ce.DocumentSelector=oV={}));var Uxe;(function(t){t.method="client/registerCapability",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType(t.method)})(Uxe||(Ce.RegistrationRequest=Uxe={}));var Wxe;(function(t){t.method="client/unregisterCapability",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType(t.method)})(Wxe||(Ce.UnregistrationRequest=Wxe={}));var Hxe;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Hxe||(Ce.ResourceOperationKind=Hxe={}));var Yxe;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Yxe||(Ce.FailureHandlingKind=Yxe={}));var jxe;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(jxe||(Ce.PositionEncodingKind=jxe={}));var Xxe;(function(t){function e(r){let n=r;return n&&Aa.string(n.id)&&n.id.length>0}o(e,"hasId"),t.hasId=e})(Xxe||(Ce.StaticRegistrationOptions=Xxe={}));var Kxe;(function(t){function e(r){let n=r;return n&&(n.documentSelector===null||oV.is(n.documentSelector))}o(e,"is"),t.is=e})(Kxe||(Ce.TextDocumentRegistrationOptions=Kxe={}));var Qxe;(function(t){function e(n){let i=n;return Aa.objectLiteral(i)&&(i.workDoneProgress===void 0||Aa.boolean(i.workDoneProgress))}o(e,"is"),t.is=e;function r(n){let i=n;return i&&Aa.boolean(i.workDoneProgress)}o(r,"hasWorkDoneProgress"),t.hasWorkDoneProgress=r})(Qxe||(Ce.WorkDoneProgressOptions=Qxe={}));var Zxe;(function(t){t.method="initialize",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Zxe||(Ce.InitializeRequest=Zxe={}));var Jxe;(function(t){t.unknownProtocolVersion=1})(Jxe||(Ce.InitializeErrorCodes=Jxe={}));var ebe;(function(t){t.method="initialized",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(ebe||(Ce.InitializedNotification=ebe={}));var tbe;(function(t){t.method="shutdown",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType0(t.method)})(tbe||(Ce.ShutdownRequest=tbe={}));var rbe;(function(t){t.method="exit",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType0(t.method)})(rbe||(Ce.ExitNotification=rbe={}));var nbe;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(nbe||(Ce.DidChangeConfigurationNotification=nbe={}));var ibe;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(ibe||(Ce.MessageType=ibe={}));var abe;(function(t){t.method="window/showMessage",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(abe||(Ce.ShowMessageNotification=abe={}));var sbe;(function(t){t.method="window/showMessageRequest",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType(t.method)})(sbe||(Ce.ShowMessageRequest=sbe={}));var obe;(function(t){t.method="window/logMessage",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(obe||(Ce.LogMessageNotification=obe={}));var lbe;(function(t){t.method="telemetry/event",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(lbe||(Ce.TelemetryEventNotification=lbe={}));var cbe;(function(t){t.None=0,t.Full=1,t.Incremental=2})(cbe||(Ce.TextDocumentSyncKind=cbe={}));var ube;(function(t){t.method="textDocument/didOpen",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(ube||(Ce.DidOpenTextDocumentNotification=ube={}));var hbe;(function(t){function e(n){let i=n;return i!=null&&typeof i.text=="string"&&i.range!==void 0&&(i.rangeLength===void 0||typeof i.rangeLength=="number")}o(e,"isIncremental"),t.isIncremental=e;function r(n){let i=n;return i!=null&&typeof i.text=="string"&&i.range===void 0&&i.rangeLength===void 0}o(r,"isFull"),t.isFull=r})(hbe||(Ce.TextDocumentContentChangeEvent=hbe={}));var fbe;(function(t){t.method="textDocument/didChange",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(fbe||(Ce.DidChangeTextDocumentNotification=fbe={}));var dbe;(function(t){t.method="textDocument/didClose",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(dbe||(Ce.DidCloseTextDocumentNotification=dbe={}));var pbe;(function(t){t.method="textDocument/didSave",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(pbe||(Ce.DidSaveTextDocumentNotification=pbe={}));var mbe;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(mbe||(Ce.TextDocumentSaveReason=mbe={}));var gbe;(function(t){t.method="textDocument/willSave",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(gbe||(Ce.WillSaveTextDocumentNotification=gbe={}));var ybe;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(ybe||(Ce.WillSaveTextDocumentWaitUntilRequest=ybe={}));var vbe;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(vbe||(Ce.DidChangeWatchedFilesNotification=vbe={}));var xbe;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(xbe||(Ce.FileChangeType=xbe={}));var bbe;(function(t){function e(r){let n=r;return Aa.objectLiteral(n)&&(qxe.URI.is(n.baseUri)||qxe.WorkspaceFolder.is(n.baseUri))&&Aa.string(n.pattern)}o(e,"is"),t.is=e})(bbe||(Ce.RelativePattern=bbe={}));var Tbe;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Tbe||(Ce.WatchKind=Tbe={}));var wbe;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(wbe||(Ce.PublishDiagnosticsNotification=wbe={}));var kbe;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(kbe||(Ce.CompletionTriggerKind=kbe={}));var Ebe;(function(t){t.method="textDocument/completion",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ebe||(Ce.CompletionRequest=Ebe={}));var Sbe;(function(t){t.method="completionItem/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Sbe||(Ce.CompletionResolveRequest=Sbe={}));var Cbe;(function(t){t.method="textDocument/hover",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Cbe||(Ce.HoverRequest=Cbe={}));var Abe;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(Abe||(Ce.SignatureHelpTriggerKind=Abe={}));var _be;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(_be||(Ce.SignatureHelpRequest=_be={}));var Dbe;(function(t){t.method="textDocument/definition",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Dbe||(Ce.DefinitionRequest=Dbe={}));var Rbe;(function(t){t.method="textDocument/references",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Rbe||(Ce.ReferencesRequest=Rbe={}));var Lbe;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Lbe||(Ce.DocumentHighlightRequest=Lbe={}));var Nbe;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Nbe||(Ce.DocumentSymbolRequest=Nbe={}));var Mbe;(function(t){t.method="textDocument/codeAction",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Mbe||(Ce.CodeActionRequest=Mbe={}));var Ibe;(function(t){t.method="codeAction/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ibe||(Ce.CodeActionResolveRequest=Ibe={}));var Obe;(function(t){t.method="workspace/symbol",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Obe||(Ce.WorkspaceSymbolRequest=Obe={}));var Pbe;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Pbe||(Ce.WorkspaceSymbolResolveRequest=Pbe={}));var Bbe;(function(t){t.method="textDocument/codeLens",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Bbe||(Ce.CodeLensRequest=Bbe={}));var Fbe;(function(t){t.method="codeLens/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Fbe||(Ce.CodeLensResolveRequest=Fbe={}));var $be;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType0(t.method)})($be||(Ce.CodeLensRefreshRequest=$be={}));var zbe;(function(t){t.method="textDocument/documentLink",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(zbe||(Ce.DocumentLinkRequest=zbe={}));var Gbe;(function(t){t.method="documentLink/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Gbe||(Ce.DocumentLinkResolveRequest=Gbe={}));var Vbe;(function(t){t.method="textDocument/formatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Vbe||(Ce.DocumentFormattingRequest=Vbe={}));var qbe;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(qbe||(Ce.DocumentRangeFormattingRequest=qbe={}));var Ube;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ube||(Ce.DocumentRangesFormattingRequest=Ube={}));var Wbe;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Wbe||(Ce.DocumentOnTypeFormattingRequest=Wbe={}));var Hbe;(function(t){t.Identifier=1})(Hbe||(Ce.PrepareSupportDefaultBehavior=Hbe={}));var Ybe;(function(t){t.method="textDocument/rename",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ybe||(Ce.RenameRequest=Ybe={}));var jbe;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(jbe||(Ce.PrepareRenameRequest=jbe={}));var Xbe;(function(t){t.method="workspace/executeCommand",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Xbe||(Ce.ExecuteCommandRequest=Xbe={}));var Kbe;(function(t){t.method="workspace/applyEdit",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType("workspace/applyEdit")})(Kbe||(Ce.ApplyWorkspaceEditRequest=Kbe={}))});var nTe=nr(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.createProtocolConnection=void 0;var rTe=Nm();function zit(t,e,r,n){return rTe.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,rTe.createMessageConnection)(t,e,r,n)}o(zit,"createProtocolConnection");HA.createProtocolConnection=zit});var aTe=nr(_o=>{"use strict";var Git=_o&&_o.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),YA=_o&&_o.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Git(e,t,r)};Object.defineProperty(_o,"__esModule",{value:!0});_o.LSPErrorCodes=_o.createProtocolConnection=void 0;YA(Nm(),_o);YA((Zy(),G3(K6)),_o);YA(mi(),_o);YA(tTe(),_o);var Vit=nTe();Object.defineProperty(_o,"createProtocolConnection",{enumerable:!0,get:o(function(){return Vit.createProtocolConnection},"get")});var iTe;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(iTe||(_o.LSPErrorCodes=iTe={}))});var oTe=nr(Wu=>{"use strict";var qit=Wu&&Wu.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),sTe=Wu&&Wu.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&qit(e,t,r)};Object.defineProperty(Wu,"__esModule",{value:!0});Wu.createProtocolConnection=void 0;var Uit=KG();sTe(KG(),Wu);sTe(aTe(),Wu);function Wit(t,e,r,n){return(0,Uit.createMessageConnection)(t,e,r,n)}o(Wit,"createProtocolConnection");Wu.createProtocolConnection=Wit});var ap,dV=O(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(ap||(ap={}))});var Cv,U4,pV=O(()=>{"use strict";Cv=Ra(oTe(),1);Bl();dV();Kd();$l();Os();Nc();ov();U4=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new fs,this.documentPhaseListeners=new fs,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=qr.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.fileSystemProvider=e.workspace.FileSystemProvider,this.workspaceManager=()=>e.workspace.WorkspaceManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=Nr.CancellationToken.None){for(let i of e){let a=i.uri.toString();if(i.state===qr.Validated){if(typeof r.validation=="boolean"&&r.validation)this.resetToState(i,qr.IndexedReferences);else if(typeof r.validation=="object"){let s=this.findMissingValidationCategories(i,r);s.length>0&&(this.buildState.set(a,{completed:!1,options:{validation:{categories:s}},result:this.buildState.get(a)?.result}),i.state=qr.IndexedReferences)}}else this.buildState.delete(a)}this.currentState=qr.Changed,await this.emitUpdate(e.map(i=>i.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=Nr.CancellationToken.None){this.currentState=qr.Changed;let i=[];for(let u of r){let h=this.langiumDocuments.deleteDocuments(u);for(let f of h)i.push(f.uri),this.cleanUpDeleted(f)}let a=(await Promise.all(e.map(u=>this.findChangedUris(u)))).flat();for(let u of a){let h=this.langiumDocuments.getDocument(u);h===void 0&&(h=this.langiumDocumentFactory.fromModel({$type:"INVALID"},u),h.state=qr.Changed,this.langiumDocuments.addDocument(h)),this.resetToState(h,qr.Changed)}let s=Hr(a).concat(i).map(u=>u.toString()).toSet();this.langiumDocuments.all.filter(u=>!s.has(u.uri.toString())&&this.shouldRelink(u,s)).forEach(u=>this.resetToState(u,qr.ComputedScopes)),await this.emitUpdate(a,i),await Ci(n);let l=this.sortDocuments(this.langiumDocuments.all.filter(u=>u.state=1}findMissingValidationCategories(e,r){let n=this.buildState.get(e.uri.toString()),i=this.serviceRegistry.getServices(e.uri).validation.ValidationRegistry.getAllValidationCategories(e),a=n?.result?.validationChecks?new Set(n?.result?.validationChecks):n?.completed?i:new Set,s=r===void 0||r.validation===!0?i:typeof r.validation=="object"?r.validation.categories??i:[];return Hr(s).filter(l=>!a.has(l)).toArray()}async findChangedUris(e){if(this.langiumDocuments.getDocument(e)??this.textDocuments?.get(e))return[e];try{let n=await this.fileSystemProvider.stat(e);if(n.isDirectory)return await this.workspaceManager().searchFolder(e);if(this.workspaceManager().shouldIncludeEntry(n))return[e]}catch{}return[]}async emitUpdate(e,r){await Promise.all(this.updateListeners.map(n=>n(e,r)))}sortDocuments(e){let r=0,n=e.length-1;for(;r=0&&!this.hasTextDocument(e[n]);)n--;rn.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),ap.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}resetToState(e,r){switch(r){case qr.Changed:case qr.Parsed:this.indexManager.removeContent(e.uri);case qr.IndexedContent:e.localSymbols=void 0;case qr.ComputedScopes:this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e);case qr.Linked:this.indexManager.removeReferences(e.uri);case qr.IndexedReferences:e.diagnostics=void 0,this.buildState.delete(e.uri.toString());case qr.Validated:}e.state>r&&(e.state=r)}cleanUpDeleted(e){this.buildState.delete(e.uri.toString()),this.indexManager.remove(e.uri),e.state=qr.Changed}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,qr.Parsed,n,s=>this.langiumDocumentFactory.update(s,n)),await this.runCancelable(e,qr.IndexedContent,n,s=>this.indexManager.updateContent(s,n)),await this.runCancelable(e,qr.ComputedScopes,n,async s=>{let l=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.localSymbols=await l.collectLocalSymbols(s,n)});let i=e.filter(s=>this.shouldLink(s));await this.runCancelable(i,qr.Linked,n,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,n)),await this.runCancelable(i,qr.IndexedReferences,n,s=>this.indexManager.updateReferences(s,n));let a=e.filter(s=>this.shouldValidate(s)?!0:(this.markAsCompleted(s),!1));await this.runCancelable(a,qr.Validated,n,async s=>{await this.validate(s,n),this.markAsCompleted(s)})}markAsCompleted(e){let r=this.buildState.get(e.uri.toString());r&&(r.completed=!0)}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){for(let s of e)s.states.state===r);await this.notifyBuildPhase(a,r,n),this.currentState=r}onBuildPhase(e,r){return this.buildPhaseListeners.add(e,r),ap.create(()=>{this.buildPhaseListeners.delete(e,r)})}onDocumentPhase(e,r){return this.documentPhaseListeners.add(e,r),ap.create(()=>{this.documentPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;return r&&"path"in r?i=r:n=r,n??(n=Nr.CancellationToken.None),i?this.awaitDocumentState(e,i,n):this.awaitBuilderState(e,n)}awaitDocumentState(e,r,n){let i=this.langiumDocuments.getDocument(r);if(i){if(i.state>=e)return Promise.resolve(r);if(n.isCancellationRequested)return Promise.reject(Fl);if(this.currentState>=e&&e>i.state)return Promise.reject(new Cv.ResponseError(Cv.LSPErrorCodes.RequestFailed,`Document state of ${r.toString()} is ${qr[i.state]}, requiring ${qr[e]}, but workspace state is already ${qr[this.currentState]}. Returning undefined.`))}else return Promise.reject(new Cv.ResponseError(Cv.LSPErrorCodes.ServerCancelled,`No document found for URI: ${r.toString()}`));return new Promise((a,s)=>{let l=this.onDocumentPhase(e,h=>{Fi.equals(h.uri,r)&&(l.dispose(),u.dispose(),a(h.uri))}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(Fl)})})}awaitBuilderState(e,r){return this.currentState>=e?Promise.resolve():r.isCancellationRequested?Promise.reject(Fl):new Promise((n,i)=>{let a=this.onBuildPhase(e,()=>{a.dispose(),s.dispose(),n()}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(Fl)})})}async notifyDocumentPhase(e,r,n){let a=this.documentPhaseListeners.get(r).slice();for(let s of a)try{await Ci(n),await s(e,n)}catch(l){if(!Gu(l))throw l}}async notifyBuildPhase(e,r,n){if(e.length===0)return;let a=this.buildPhaseListeners.get(r).slice();for(let s of a)await Ci(n),await s(e,n)}shouldLink(e){return this.getBuildOptions(e).eagerLinking??!0}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){let n=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,i=this.getBuildOptions(e),a=typeof i.validation=="object"?{...i.validation}:{};a.categories=this.findMissingValidationCategories(e,i);let s=await n.validateDocument(e,a,r);e.diagnostics?e.diagnostics.push(...s):e.diagnostics=s;let l=this.buildState.get(e.uri.toString());l&&(l.result??(l.result={}),l.result.validationChecks?l.result.validationChecks=Hr(l.result.validationChecks).concat(a.categories).distinct().toArray():l.result.validationChecks=[...a.categories])}getBuildOptions(e){return this.buildState.get(e.uri.toString())?.options??{}}}});var W4,mV=O(()=>{"use strict";us();hA();Bl();Os();Nc();W4=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Dm,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=cs(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{Fi.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),Hr(i)}allElements(e,r){let n=Hr(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){return r?this.symbolByTypeIndex.get(e,r,()=>(this.symbolIndex.get(e)??[]).filter(a=>this.astReflection.isSubtype(a.type,r))):this.symbolIndex.get(e)??[]}remove(e){this.removeContent(e),this.removeReferences(e)}removeContent(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r)}removeReferences(e){let r=e.toString();this.referenceIndex.delete(r)}async updateContent(e,r=Nr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.collectExportedSymbols(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=Nr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var H4,gV=O(()=>{"use strict";Bl();$l();Nc();Os();H4=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new Vs,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){this.folders=e.workspaceFolders??void 0}initialized(e){return this.mutex.write(r=>this.initializeWorkspace(this.folders??[],r))}async initializeWorkspace(e,r=Nr.CancellationToken.None){let n=await this.performStartup(e);await Ci(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=[],n=o(s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)},"collector");await this.loadAdditionalDocuments(e,n);let i=[];await Promise.all(e.map(s=>this.getRootFolder(s)).map(async s=>this.traverseFolder(s,i)));let a=Hr(i).distinct(s=>s.toString()).filter(s=>!this.langiumDocuments.hasDocument(s));return await this.loadWorkspaceDocuments(a,n),this._ready.resolve(),r}async loadWorkspaceDocuments(e,r){await Promise.all(e.map(async n=>{let i=await this.langiumDocuments.getOrCreateDocument(n);r(i)}))}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return ca.parse(e.uri)}async traverseFolder(e,r){try{let n=await this.fileSystemProvider.readDirectory(e);await Promise.all(n.map(async i=>{this.shouldIncludeEntry(i)&&(i.isDirectory?await this.traverseFolder(i.uri,r):i.isFile&&r.push(i.uri))}))}catch(n){console.error("Failure to read directory content of "+e.toString(!0),n)}}async searchFolder(e){let r=[];return await this.traverseFolder(e,r),r}shouldIncludeEntry(e){let r=Fi.basename(e.uri);return r.startsWith(".")?!1:e.isDirectory?r!=="node_modules"&&r!=="out":e.isFile?this.serviceRegistry.hasServices(e.uri):!1}}});function XA(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function vV(t){return t&&"modes"in t&&"defaultMode"in t}function yV(t){return!XA(t)&&!vV(t)}var Y4,jA,Im,KA=O(()=>{"use strict";Hd();Y4=class{static{o(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,r,n,i,a){return Ny.buildUnexpectedCharactersMessage(e,r,n,i,a)}buildUnableToPopLexerModeMessage(e){return Ny.buildUnableToPopLexerModeMessage(e)}},jA={mode:"full"},Im=class{static{o(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let r=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=yV(r)?Object.values(r):r,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new fi(n,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,r=jA){let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:n.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(e)}}toTokenTypeDictionary(e){if(yV(e))return e;let r=vV(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(XA,"isTokenTypeArray");o(vV,"isIMultiModeLexerDefinition");o(yV,"isTokenTypeDictionary")});function TV(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=on.create(0,0));let a=uTe(t),s=kV(n),l=Yit({lines:a,position:i,options:s});return Zit({index:0,tokens:l,position:i})}function wV(t,e){let r=kV(e),n=uTe(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function uTe(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(dF)}function Yit(t){let e=[],r=t.position.line,n=t.position.character;for(let i=0;i=l.length){if(e.length>0){let f=on.create(r,n);e.push({type:"break",content:"",range:Kr.create(f,f)})}}else{lTe.lastIndex=u;let f=lTe.exec(l);if(f){let d=f[0],p=f[1],m=on.create(r,n+u),g=on.create(r,n+u+d.length);e.push({type:"tag",content:p,range:Kr.create(m,g)}),u+=d.length,u=bV(l,u)}if(u0&&e[e.length-1].type==="break"?e.slice(0,-1):e}function jit(t,e,r,n){let i=[];if(t.length===0){let a=on.create(r,n),s=on.create(r,n+e.length);i.push({type:"text",content:e,range:Kr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:Kr.create(on.create(r,a+n),on.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Kr.create(on.create(r,a+f+n),on.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Kr.create(on.create(r,a+f+n),on.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Kr.create(on.create(r,a+f+n),on.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:Kr.create(on.create(r,a+n),on.create(r,a+n+s.length))})}return i}function bV(t,e){let r=t.substring(e).match(Xit);return r?e+r.index:t.length}function Qit(t){let e=t.match(Kit);if(e&&typeof e.index=="number")return e.index}function Zit(t){let e=on.create(t.position.line,t.position.character);if(t.tokens.length===0)return new QA([],Kr.create(e,e));let r=[];for(;t.index0){let s=bV(e,n);i=e.substring(s),e=e.substring(0,n)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(i=`\`${i}\``),r.renderLink?.(e,i)??nat(e,i)}}function nat(t,e){try{return ca.parse(t,!0),`[${e}](${t})`}catch{return t}}function cTe(t){return t.endsWith(` +`)?` +`:` + +`}var lTe,Hit,Xit,Kit,QA,j4,X4,ZA,EV=O(()=>{"use strict";Zy();wy();Nc();o(TV,"parseJSDoc");o(wV,"isJSDoc");o(uTe,"getLines");lTe=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Hit=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(Yit,"tokenize");o(jit,"buildInlineTokens");Xit=/\S/,Kit=/\s*$/;o(bV,"skipWhitespace");o(Qit,"lastCharacter");o(Zit,"parseJSDocComment");o(Jit,"parseJSDocElement");o(eat,"appendEmptyLine");o(hTe,"parseJSDocText");o(tat,"parseJSDocInline");o(fTe,"parseJSDocTag");o(dTe,"parseJSDocLine");o(kV,"normalizeOptions");o(xV,"normalizeOption");QA=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=cTe(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=cTe(r)+i}return r.trim()}},j4=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e} +${r}`),this.inline?`{${e}}`:e}toMarkdown(e){return e?.renderTag?.(this)??this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=rat(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(rat,"renderInlineTag");o(nat,"renderLinkDefault");X4=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;rn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},ZA=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(cTe,"fillNewlines")});var K4,SV=O(()=>{"use strict";us();EV();K4=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&wV(r))return TV(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){let i=this.findNameInLocalSymbols(e,r)??this.findNameInGlobalScope(e,r);if(i&&i.nameSegment){let a=i.nameSegment.range.start.line+1,s=i.nameSegment.range.start.character+1,l=i.documentUri.with({fragment:`L${a},${s}`});return`[${n}](${l.toString()})`}else return}documentationTagRenderer(e,r){}findNameInLocalSymbols(e,r){let i=cs(e).localSymbols;if(!i)return;let a=e;do{let l=i.getStream(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var Q4,CV=O(()=>{"use strict";fA();Sc();Q4=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){return Vz(e)?e.$comment:oF(e.$cstNode,this.grammarConfig().multilineCommentRules)?.text}}});var Z4,AV,_V,DV=O(()=>{"use strict";$l();gA();Z4=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,r){return Promise.resolve(this.syncParser.parse(e))}},AV=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new Vs,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new Vs;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Fl)}),this.queue.push(r),r.promise}},_V=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new pi.Emitter,this.deferred=new Vs,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(Fl),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new Vs,this.sendMessage(e),this.deferred.promise}}});var J4,RV=O(()=>{"use strict";Bl();$l();J4=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new Nr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=lA();return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n=Nr.CancellationToken.None){let i=new Vs,a={action:r,deferred:i,cancellationToken:n};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){Gu(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var e3,LV=O(()=>{"use strict";Q6();Zo();kc();us();Kd();Sc();e3=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new _m,this.tokenTypeIdMap=new _m,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(r=>({...r,message:r.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of Ps(e))r.set(i,{});if(e.$cstNode)for(let i of sm(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)Si(l)?s.push(this.dehydrateAstNode(l,r)):oa(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else Si(a)?n[i]=this.dehydrateAstNode(a,r):oa(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return fT(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),wc(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):Nd(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of Ps(e))r.set(a,{});let i;if(e.$cstNode)for(let a of sm(e.$cstNode)){let s;"fullText"in a?(s=new Jy(a.fullText),i=s):"content"in a?s=new km:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)Si(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):oa(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else Si(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):oa(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),wc(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new wm(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let r of Ps(this.grammar))wT(r)&&this.grammarElementIdMap.set(r,e++)}}});function Ya(t){return{documentation:{CommentProvider:o(e=>new Q4(e),"CommentProvider"),DocumentationProvider:o(e=>new K4(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new Z4(e),"AsyncParser"),GrammarConfig:o(e=>AF(e),"GrammarConfig"),LangiumParser:o(e=>kz(e),"LangiumParser"),CompletionParser:o(e=>Tz(e),"CompletionParser"),ValueConverter:o(()=>new Sm,"ValueConverter"),TokenBuilder:o(()=>new ef,"TokenBuilder"),Lexer:o(e=>new Im(e),"Lexer"),ParserErrorMessageProvider:o(()=>new ev,"ParserErrorMessageProvider"),LexerErrorMessageProvider:o(()=>new Y4,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new M4,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new L4(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new N4(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new b4(e),"Linker"),NameProvider:o(()=>new T4,"NameProvider"),ScopeProvider:o(e=>new C4(e),"ScopeProvider"),ScopeComputation:o(e=>new k4(e),"ScopeComputation"),References:o(e=>new w4(e),"References")},serializer:{Hydrator:o(e=>new e3(e),"Hydrator"),JsonSerializer:o(e=>new A4(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new R4(e),"DocumentValidator"),ValidationRegistry:o(e=>new D4(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function ja(t){return{ServiceRegistry:o(e=>new _4(e),"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new x4(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new v4(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new U4(e),"DocumentBuilder"),IndexManager:o(e=>new W4(e),"IndexManager"),WorkspaceManager:o(e=>new H4(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new J4,"WorkspaceLock"),ConfigurationProvider:o(e=>new I4(e),"ConfigurationProvider")},profilers:{}}}var NV=O(()=>{"use strict";_F();wz();Ez();nA();Sz();Oz();Pz();Bz();Fz();Gz();fA();qz();Uz();pA();Wz();Hz();Yz();pV();ov();mV();gV();KA();SV();CV();m4();DV();RV();LV();o(Ya,"createDefaultCoreModule");o(ja,"createDefaultSharedCoreModule")});function ii(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(t3,{});return vTe(h)}function yTe(t){if(t&&t[gTe])for(let e of Object.values(t))yTe(e);return t}function vTe(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),set:o(()=>{throw new Error("Cannot set property on injected service container")},"set"),get:o((n,i)=>i===gTe?!0:mTe(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(mTe(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Object.getOwnPropertyNames(t)],"ownKeys")});return r}function mTe(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+t[e]);if(t[e]===pTe)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=pTe;try{t[e]=typeof i=="function"?i(n):vTe(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function t3(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!=null)if(typeof n=="object"){let i=t[r];typeof i=="object"&&i!==null?t[r]=t3(i,n):t[r]=t3({},n)}else t[r]=n}return t}var MV,gTe,pTe,IV=O(()=>{"use strict";(function(t){t.merge=(e,r)=>t3(t3({},e),r)})(MV||(MV={}));o(ii,"inject");gTe=Symbol("isProxy");o(yTe,"eagerLoad");o(vTe,"_inject");pTe=Symbol();o(mTe,"_resolve");o(t3,"_merge")});var xTe=O(()=>{"use strict"});var bTe=O(()=>{"use strict";CV();SV();EV()});var TTe=O(()=>{"use strict"});var wTe=O(()=>{"use strict";_F();TTe()});var OV,Om,JA,PV,kTe=O(()=>{"use strict";Hd();nA();KA();OV={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(function(t){t.REGULAR="indentation-sensitive",t.IGNORE_INDENTATION="ignore-indentation"})(Om||(Om={}));JA=class extends ef{static{o(this,"IndentationAwareTokenBuilder")}constructor(e=OV){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...OV,...e},this.indentTokenType=Ud({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=Ud({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,r){let n=super.buildTokens(e,r);if(!XA(n))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:a,whitespaceTokenName:s,ignoreIndentationDelimiters:l}=this.options,u,h,f,d=[];for(let p of n){for(let[m,g]of l)p.name===m?p.PUSH_MODE=Om.IGNORE_INDENTATION:p.name===g&&(p.POP_MODE=!0);p.name===a?u=p:p.name===i?h=p:p.name===s?f=p:d.push(p)}if(!u||!h||!f)throw new Error("Some indentation/whitespace tokens not found!");return l.length>0?{modes:{[Om.REGULAR]:[u,h,...d,f],[Om.IGNORE_INDENTATION]:[...d,f]},defaultMode:Om.REGULAR}:[u,h,f,...d]}flushLexingReport(e){return{...super.flushLexingReport(e),remainingDedents:this.flushRemainingDedents(e)}}isStartOfLine(e,r){return r===0||`\r +`.includes(e[r-1])}matchWhitespace(e,r,n,i){this.whitespaceRegExp.lastIndex=r;let a=this.whitespaceRegExp.exec(e);return{currIndentLevel:a?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:a}}createIndentationTokenInstance(e,r,n,i){let a=this.getLineNumber(r,i);return Kh(e,n,i,i+n.length,a,a,1,n.length)}getLineNumber(e,r){return e.substring(0,r).split(/\r\n|\r|\n/).length}indentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:a,prevIndentLevel:s,match:l}=this.matchWhitespace(e,r,n,i);return a<=s?null:(this.indentationStack.push(a),l)}dedentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:a,prevIndentLevel:s,match:l}=this.matchWhitespace(e,r,n,i);if(a>=s)return null;let u=this.indentationStack.lastIndexOf(a);if(u===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${a} at offset: ${r}. Current indentation stack: ${this.indentationStack}`,offset:r,length:l?.[0]?.length??0,line:this.getLineNumber(e,r),column:1}),null;let h=this.indentationStack.length-u-1,f=e.substring(0,r).match(/[\r\n]+$/)?.[0].length??1;for(let d=0;d1;)r.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],r}},PV=class extends Im{static{o(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof JA)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,r=jA){let n=super.tokenize(e),i=n.report;r?.mode==="full"&&n.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:a,dedentTokenType:s}=this.indentationTokenBuilder,l=a.tokenTypeIdx,u=s.tokenTypeIdx,h=[],f=n.tokens.length-1;for(let d=0;d=0&&h.push(n.tokens[f]),n.tokens=h,n}}});var ETe=O(()=>{"use strict"});var STe=O(()=>{"use strict";DV();wz();Q6();kTe();Ez();m4();KA();rA();ETe();nA();Sz()});var CTe=O(()=>{"use strict";Oz();Pz();Bz();zz();Fz();Gz()});var ATe=O(()=>{"use strict";LV();fA()});var e7,Xa,BV=O(()=>{"use strict";e7=class{static{o(this,"EmptyFileSystemProvider")}stat(e){throw new Error("No file system is available.")}statSync(e){throw new Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw new Error("No file system is available.")}readBinarySync(){throw new Error("No file system is available.")}readFile(){throw new Error("No file system is available.")}readFileSync(){throw new Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},Xa={fileSystemProvider:o(()=>new e7,"fileSystemProvider")}});function sat(){let t=ii(ja(Xa),aat),e=ii(Ya({shared:t}),iat);return t.ServiceRegistry.register(e),e}function Hu(t){let e=sat(),r=e.serializer.JsonSerializer.deserialize(t);return e.shared.workspace.LangiumDocumentFactory.fromModel(r,ca.parse(`memory:/${r.name??"grammar"}.langium`)),r}var iat,aat,_Te=O(()=>{"use strict";NV();IV();Zo();BV();Nc();iat={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},aat={AstReflection:o(()=>new xy,"AstReflection")};o(sat,"createMinimalGrammarServices");o(Hu,"loadGrammarFromJson")});var ln={};vr(ln,{AstUtils:()=>_C,BiMap:()=>_m,Cancellation:()=>Nr,ContextCache:()=>Dm,CstUtils:()=>jC,DONE_RESULT:()=>ls,Deferred:()=>Vs,Disposable:()=>ap,DisposableCache:()=>cv,DocumentCache:()=>uA,EMPTY_STREAM:()=>Md,ErrorWithLocation:()=>lm,GrammarUtils:()=>t6,MultiMap:()=>fs,OperationCancelled:()=>Fl,Reduction:()=>cy,RegExpUtils:()=>ZC,SimpleCache:()=>S4,StreamImpl:()=>Ko,TreeStreamImpl:()=>Nu,URI:()=>ca,UriTrie:()=>sv,UriUtils:()=>Fi,WorkspaceCache:()=>uv,assertCondition:()=>o1e,assertUnreachable:()=>Ou,delayNextTick:()=>Nz,interruptAndCheck:()=>Ci,isOperationCancelled:()=>Gu,loadGrammarFromJson:()=>Hu,setInterruptionPeriod:()=>_ve,startCancelableOperation:()=>lA,stream:()=>Hr});var DTe=O(()=>{"use strict";hA();gA();jr(ln,pi);Kd();dV();XC();_Te();$l();Os();Nc();us();Bl();Sc();Rc();wy()});var RTe=O(()=>{"use strict";Uz();pA()});var FV,t7,LTe=O(()=>{"use strict";Kd();FV=class{static{o(this,"DefaultLangiumProfiler")}constructor(e){this.activeCategories=new Set,this.allCategories=new Set(["validating","parsing","linking"]),this.activeCategories=e??new Set(this.allCategories),this.records=new fs}isActive(e){return this.activeCategories.has(e)}start(...e){e?e.forEach(r=>this.activeCategories.add(r)):this.activeCategories=new Set(this.allCategories)}stop(...e){e?e.forEach(r=>this.activeCategories.delete(r)):this.activeCategories.clear()}createTask(e,r){if(!this.isActive(e))throw new Error(`Category "${e}" is not active.`);return console.log(`Creating profiling task for '${e}.${r}'.`),new t7(n=>this.records.add(e,this.dumpRecord(e,n)),r)}dumpRecord(e,r){console.info(`Task ${e}.${r.identifier} executed in ${r.duration.toFixed(2)}ms and ended at ${r.date.toISOString()}`);let n=[];for(let s of r.entries.keys()){let l=r.entries.get(s),u=l.reduce((h,f)=>h+f);n.push({name:`${r.identifier}.${s}`,count:l.length,duration:u})}let i=r.duration-n.map(s=>s.duration).reduce((s,l)=>s+l,0);n.push({name:r.identifier,count:1,duration:i}),n.sort((s,l)=>l.duration-s.duration);function a(s){return Math.round(100*s)/100}return o(a,"Round"),console.table(n.map(s=>({Element:s.name,Count:s.count,"Self %":a(100*s.duration/r.duration),"Time (ms)":a(s.duration)}))),r}getRecords(...e){return e.length===0?this.records.values():this.records.entries().filter(r=>e.some(n=>n===r[0])).flatMap(r=>r[1])}},t7=class{static{o(this,"ProfilingTask")}constructor(e,r){this.stack=[],this.entries=new fs,this.addRecord=e,this.identifier=r}start(){if(this.startTime!==void 0)throw new Error(`Task "${this.identifier}" is already started.`);this.startTime=performance.now()}stop(){if(this.startTime===void 0)throw new Error(`Task "${this.identifier}" was not started.`);if(this.stack.length!==0)throw new Error(`Task "${this.identifier}" cannot be stopped before sub-task(s): ${this.stack.map(r=>r.id).join(", ")}.`);let e={identifier:this.identifier,date:new Date,duration:performance.now()-this.startTime,entries:this.entries};this.addRecord(e),this.startTime=void 0,this.entries.clear()}startSubTask(e){this.stack.push({id:e,start:performance.now(),content:0})}stopSubTask(e){let r=this.stack.pop();if(!r)throw new Error(`Task "${this.identifier}.${e}" was not started.`);if(r.id!==e)throw new Error(`Sub-Task "${r.id}" is not already stopped.`);let n=performance.now()-r.start;this.stack.at(-1)!==void 0&&(this.stack[this.stack.length-1].content+=n);let i=n-r.content;this.entries.add(e,i)}}});var NTe=O(()=>{"use strict";Wz();Hz();Yz();pV();ov();BV();mV();RV();gV();LTe()});var _a={};vr(_a,{AbstractAstReflection:()=>Y0,AbstractCstNode:()=>h4,AbstractLangiumParser:()=>f4,AbstractParserErrorMessageProvider:()=>J6,AbstractThreadedAsyncParser:()=>AV,AstUtils:()=>_C,BiMap:()=>_m,Cancellation:()=>Nr,CompositeCstNodeImpl:()=>km,ContextCache:()=>Dm,CstNodeBuilder:()=>u4,CstUtils:()=>jC,DEFAULT_TOKENIZE_OPTIONS:()=>jA,DONE_RESULT:()=>ls,DatatypeSymbol:()=>Z6,DefaultAstNodeDescriptionProvider:()=>L4,DefaultAstNodeLocator:()=>M4,DefaultAsyncParser:()=>Z4,DefaultCommentProvider:()=>Q4,DefaultConfigurationProvider:()=>I4,DefaultDocumentBuilder:()=>U4,DefaultDocumentValidator:()=>R4,DefaultHydrator:()=>e3,DefaultIndexManager:()=>W4,DefaultJsonSerializer:()=>A4,DefaultLangiumDocumentFactory:()=>v4,DefaultLangiumDocuments:()=>x4,DefaultLangiumProfiler:()=>FV,DefaultLexer:()=>Im,DefaultLexerErrorMessageProvider:()=>Y4,DefaultLinker:()=>b4,DefaultNameProvider:()=>T4,DefaultReferenceDescriptionProvider:()=>N4,DefaultReferences:()=>w4,DefaultScopeComputation:()=>k4,DefaultScopeProvider:()=>C4,DefaultServiceRegistry:()=>_4,DefaultTokenBuilder:()=>ef,DefaultValueConverter:()=>Sm,DefaultWorkspaceLock:()=>J4,DefaultWorkspaceManager:()=>H4,Deferred:()=>Vs,Disposable:()=>ap,DisposableCache:()=>cv,DocumentCache:()=>uA,DocumentState:()=>qr,DocumentValidator:()=>zl,EMPTY_SCOPE:()=>ait,EMPTY_STREAM:()=>Md,EmptyFileSystem:()=>Xa,EmptyFileSystemProvider:()=>e7,ErrorWithLocation:()=>lm,GrammarAST:()=>ET,GrammarUtils:()=>t6,IndentationAwareLexer:()=>PV,IndentationAwareTokenBuilder:()=>JA,JSDocDocumentationProvider:()=>K4,LangiumCompletionParser:()=>p4,LangiumParser:()=>d4,LangiumParserErrorMessageProvider:()=>ev,LeafCstNodeImpl:()=>wm,LexingMode:()=>Om,MapScope:()=>$z,Module:()=>MV,MultiMap:()=>fs,MultiMapScope:()=>E4,OperationCancelled:()=>Fl,ParserWorker:()=>_V,ProfilingTask:()=>t7,Reduction:()=>cy,RefResolving:()=>Am,RegExpUtils:()=>ZC,RootCstNodeImpl:()=>Jy,SimpleCache:()=>S4,StreamImpl:()=>Ko,StreamScope:()=>lv,TextDocument:()=>iv,TreeStreamImpl:()=>Nu,URI:()=>ca,UriTrie:()=>sv,UriUtils:()=>Fi,VALIDATE_EACH_NODE:()=>Pve,ValidationCategory:()=>dA,ValidationRegistry:()=>D4,ValueConverter:()=>zu,WorkspaceCache:()=>uv,assertCondition:()=>o1e,assertUnreachable:()=>Ou,createCompletionParser:()=>Tz,createDefaultCoreModule:()=>Ya,createDefaultSharedCoreModule:()=>ja,createGrammarConfig:()=>AF,createLangiumParser:()=>kz,createParser:()=>g4,delayNextTick:()=>Nz,diagnosticData:()=>Rm,eagerLoad:()=>yTe,getDiagnosticRange:()=>Bve,indentationBuilderDefaultOptions:()=>OV,inject:()=>ii,interruptAndCheck:()=>Ci,isAstNode:()=>Si,isAstNodeDescription:()=>PB,isAstNodeWithComment:()=>Vz,isCompositeCstNode:()=>wc,isIMultiModeLexerDefinition:()=>vV,isJSDoc:()=>wV,isLeafCstNode:()=>Nd,isLinkingError:()=>j0,isMultiReference:()=>Xo,isNamed:()=>Ive,isOperationCancelled:()=>Gu,isReference:()=>oa,isRootCstNode:()=>fT,isTokenTypeArray:()=>XA,isTokenTypeDictionary:()=>yV,loadGrammarFromJson:()=>Hu,parseJSDoc:()=>TV,prepareLangiumParser:()=>kve,setInterruptionPeriod:()=>_ve,startCancelableOperation:()=>lA,stream:()=>Hr,toDiagnosticData:()=>Fve,toDiagnosticSeverity:()=>mA});var tl=O(()=>{"use strict";NV();IV();qz();xTe();kc();bTe();wTe();STe();CTe();ATe();DTe();jr(_a,ln);RTe();NTe();Zo()});function GTe(t){return Oc.isInstance(t,ju.$type)}function VTe(t){return Oc.isInstance(t,i3.$type)}function qTe(t){return Oc.isInstance(t,Bm.$type)}function UTe(t){return Oc.isInstance(t,op.$type)}function WTe(t){return Oc.isInstance(t,Dv.$type)}function HTe(t){return Oc.isInstance(t,Fm.$type)}function YTe(t){return Oc.isInstance(t,$m.$type)}function jTe(t){return Oc.isInstance(t,zm.$type)}function XTe(t){return Oc.isInstance(t,lp.$type)}function KTe(t){return Oc.isInstance(t,a3.$type)}function QTe(t){return Oc.isInstance(t,Gm.$type)}var oat,kt,WV,HV,YV,jV,XV,KV,QV,Wxr,ju,r7,i3,MTe,n7,$V,Bm,i7,Av,Yu,zV,op,r3,Dv,n3,GV,a7,Fm,VV,$m,zm,lp,a3,sp,qV,_v,Pm,Gm,UV,ZTe,Oc,ITe,lat,OTe,cat,PTe,uat,BTe,hat,FTe,fat,$Te,dat,zTe,pat,mat,gat,yat,vat,xat,bat,Tat,qs,ZV,JV,eq,tq,rq,nq,iq,wat,kat,Eat,Sat,cp,rf,ms,Cat,gs=O(()=>{"use strict";tl();tl();tl();tl();oat=Object.defineProperty,kt=o((t,e)=>oat(t,"name",{value:e,configurable:!0}),"__name");(t=>{t.Terminals={ARROW_DIRECTION:/L|R|T|B/,ARROW_GROUP:/\{group\}/,ARROW_INTO:/<|>/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ARCH_ICON:/\([\w-:]+\)/,ARCH_TITLE:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[\w ]+)\]/}})(WV||(WV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,REFERENCE:/\w([-\./\w]*[-\w])?/}})(HV||(HV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(YV||(YV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(jV||(jV={}));(t=>{t.Terminals={NUMBER_PIE:/(?:-?[0-9]+\.[0-9]+(?!\.))|(?:-?(0|[1-9][0-9]*)(?!\.))/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(XV||(XV={}));(t=>{t.Terminals={GRATICULE:/circle|polygon/,BOOLEAN:/true|false/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NUMBER:/(?:[0-9]+\.[0-9]+(?!\.))|(?:0|[1-9][0-9]*(?!\.))/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(KV||(KV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,TREEMAP_KEYWORD:/treemap-beta|treemap/,CLASS_DEF:/classDef\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\s+([^;\r\n]*))?(?:;)?/,STYLE_SEPARATOR:/:::/,SEPARATOR:/:/,COMMA:/,/,INDENTATION:/[ \t]{1,}/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,ID2:/[a-zA-Z_][a-zA-Z0-9_]*/,NUMBER2:/[0-9_\.\,]+/,STRING2:/"[^"]*"|'[^']*'/}})(QV||(QV={}));Wxr={...WV.Terminals,...HV.Terminals,...YV.Terminals,...jV.Terminals,...XV.Terminals,...KV.Terminals,...QV.Terminals},ju={$type:"Architecture",accDescr:"accDescr",accTitle:"accTitle",edges:"edges",groups:"groups",junctions:"junctions",services:"services",title:"title"};o(GTe,"isArchitecture");kt(GTe,"isArchitecture");r7={$type:"Axis",label:"label",name:"name"},i3={$type:"Branch",name:"name",order:"order"};o(VTe,"isBranch");kt(VTe,"isBranch");MTe={$type:"Checkout",branch:"branch"},n7={$type:"CherryPicking",id:"id",parent:"parent",tags:"tags"},$V={$type:"ClassDefStatement",className:"className",styleText:"styleText"},Bm={$type:"Commit",id:"id",message:"message",tags:"tags",type:"type"};o(qTe,"isCommit");kt(qTe,"isCommit");i7={$type:"Curve",entries:"entries",label:"label",name:"name"},Av={$type:"Direction",accDescr:"accDescr",accTitle:"accTitle",dir:"dir",statements:"statements",title:"title"},Yu={$type:"Edge",lhsDir:"lhsDir",lhsGroup:"lhsGroup",lhsId:"lhsId",lhsInto:"lhsInto",rhsDir:"rhsDir",rhsGroup:"rhsGroup",rhsId:"rhsId",rhsInto:"rhsInto",title:"title"},zV={$type:"Entry",axis:"axis",value:"value"},op={$type:"GitGraph",accDescr:"accDescr",accTitle:"accTitle",statements:"statements",title:"title"};o(UTe,"isGitGraph");kt(UTe,"isGitGraph");r3={$type:"Group",icon:"icon",id:"id",in:"in",title:"title"},Dv={$type:"Info",accDescr:"accDescr",accTitle:"accTitle",title:"title"};o(WTe,"isInfo");kt(WTe,"isInfo");n3={$type:"Item",classSelector:"classSelector",name:"name"},GV={$type:"Junction",id:"id",in:"in"},a7={$type:"Leaf",classSelector:"classSelector",name:"name",value:"value"},Fm={$type:"Merge",branch:"branch",id:"id",tags:"tags",type:"type"};o(HTe,"isMerge");kt(HTe,"isMerge");VV={$type:"Option",name:"name",value:"value"},$m={$type:"Packet",accDescr:"accDescr",accTitle:"accTitle",blocks:"blocks",title:"title"};o(YTe,"isPacket");kt(YTe,"isPacket");zm={$type:"PacketBlock",bits:"bits",end:"end",label:"label",start:"start"};o(jTe,"isPacketBlock");kt(jTe,"isPacketBlock");lp={$type:"Pie",accDescr:"accDescr",accTitle:"accTitle",sections:"sections",showData:"showData",title:"title"};o(XTe,"isPie");kt(XTe,"isPie");a3={$type:"PieSection",label:"label",value:"value"};o(KTe,"isPieSection");kt(KTe,"isPieSection");sp={$type:"Radar",accDescr:"accDescr",accTitle:"accTitle",axes:"axes",curves:"curves",options:"options",title:"title"},qV={$type:"Section",classSelector:"classSelector",name:"name"},_v={$type:"Service",icon:"icon",iconText:"iconText",id:"id",in:"in",title:"title"},Pm={$type:"Statement"},Gm={$type:"Treemap",accDescr:"accDescr",accTitle:"accTitle",title:"title",TreemapRows:"TreemapRows"};o(QTe,"isTreemap");kt(QTe,"isTreemap");UV={$type:"TreemapRow",indent:"indent",item:"item"},ZTe=class extends Y0{static{o(this,"MermaidAstReflection")}constructor(){super(...arguments),this.types={Architecture:{name:ju.$type,properties:{accDescr:{name:ju.accDescr},accTitle:{name:ju.accTitle},edges:{name:ju.edges,defaultValue:[]},groups:{name:ju.groups,defaultValue:[]},junctions:{name:ju.junctions,defaultValue:[]},services:{name:ju.services,defaultValue:[]},title:{name:ju.title}},superTypes:[]},Axis:{name:r7.$type,properties:{label:{name:r7.label},name:{name:r7.name}},superTypes:[]},Branch:{name:i3.$type,properties:{name:{name:i3.name},order:{name:i3.order}},superTypes:[Pm.$type]},Checkout:{name:MTe.$type,properties:{branch:{name:MTe.branch}},superTypes:[Pm.$type]},CherryPicking:{name:n7.$type,properties:{id:{name:n7.id},parent:{name:n7.parent},tags:{name:n7.tags,defaultValue:[]}},superTypes:[Pm.$type]},ClassDefStatement:{name:$V.$type,properties:{className:{name:$V.className},styleText:{name:$V.styleText}},superTypes:[]},Commit:{name:Bm.$type,properties:{id:{name:Bm.id},message:{name:Bm.message},tags:{name:Bm.tags,defaultValue:[]},type:{name:Bm.type}},superTypes:[Pm.$type]},Curve:{name:i7.$type,properties:{entries:{name:i7.entries,defaultValue:[]},label:{name:i7.label},name:{name:i7.name}},superTypes:[]},Direction:{name:Av.$type,properties:{accDescr:{name:Av.accDescr},accTitle:{name:Av.accTitle},dir:{name:Av.dir},statements:{name:Av.statements,defaultValue:[]},title:{name:Av.title}},superTypes:[op.$type]},Edge:{name:Yu.$type,properties:{lhsDir:{name:Yu.lhsDir},lhsGroup:{name:Yu.lhsGroup,defaultValue:!1},lhsId:{name:Yu.lhsId},lhsInto:{name:Yu.lhsInto,defaultValue:!1},rhsDir:{name:Yu.rhsDir},rhsGroup:{name:Yu.rhsGroup,defaultValue:!1},rhsId:{name:Yu.rhsId},rhsInto:{name:Yu.rhsInto,defaultValue:!1},title:{name:Yu.title}},superTypes:[]},Entry:{name:zV.$type,properties:{axis:{name:zV.axis,referenceType:r7.$type},value:{name:zV.value}},superTypes:[]},GitGraph:{name:op.$type,properties:{accDescr:{name:op.accDescr},accTitle:{name:op.accTitle},statements:{name:op.statements,defaultValue:[]},title:{name:op.title}},superTypes:[]},Group:{name:r3.$type,properties:{icon:{name:r3.icon},id:{name:r3.id},in:{name:r3.in},title:{name:r3.title}},superTypes:[]},Info:{name:Dv.$type,properties:{accDescr:{name:Dv.accDescr},accTitle:{name:Dv.accTitle},title:{name:Dv.title}},superTypes:[]},Item:{name:n3.$type,properties:{classSelector:{name:n3.classSelector},name:{name:n3.name}},superTypes:[]},Junction:{name:GV.$type,properties:{id:{name:GV.id},in:{name:GV.in}},superTypes:[]},Leaf:{name:a7.$type,properties:{classSelector:{name:a7.classSelector},name:{name:a7.name},value:{name:a7.value}},superTypes:[n3.$type]},Merge:{name:Fm.$type,properties:{branch:{name:Fm.branch},id:{name:Fm.id},tags:{name:Fm.tags,defaultValue:[]},type:{name:Fm.type}},superTypes:[Pm.$type]},Option:{name:VV.$type,properties:{name:{name:VV.name},value:{name:VV.value,defaultValue:!1}},superTypes:[]},Packet:{name:$m.$type,properties:{accDescr:{name:$m.accDescr},accTitle:{name:$m.accTitle},blocks:{name:$m.blocks,defaultValue:[]},title:{name:$m.title}},superTypes:[]},PacketBlock:{name:zm.$type,properties:{bits:{name:zm.bits},end:{name:zm.end},label:{name:zm.label},start:{name:zm.start}},superTypes:[]},Pie:{name:lp.$type,properties:{accDescr:{name:lp.accDescr},accTitle:{name:lp.accTitle},sections:{name:lp.sections,defaultValue:[]},showData:{name:lp.showData,defaultValue:!1},title:{name:lp.title}},superTypes:[]},PieSection:{name:a3.$type,properties:{label:{name:a3.label},value:{name:a3.value}},superTypes:[]},Radar:{name:sp.$type,properties:{accDescr:{name:sp.accDescr},accTitle:{name:sp.accTitle},axes:{name:sp.axes,defaultValue:[]},curves:{name:sp.curves,defaultValue:[]},options:{name:sp.options,defaultValue:[]},title:{name:sp.title}},superTypes:[]},Section:{name:qV.$type,properties:{classSelector:{name:qV.classSelector},name:{name:qV.name}},superTypes:[n3.$type]},Service:{name:_v.$type,properties:{icon:{name:_v.icon},iconText:{name:_v.iconText},id:{name:_v.id},in:{name:_v.in},title:{name:_v.title}},superTypes:[]},Statement:{name:Pm.$type,properties:{},superTypes:[]},Treemap:{name:Gm.$type,properties:{accDescr:{name:Gm.accDescr},accTitle:{name:Gm.accTitle},title:{name:Gm.title},TreemapRows:{name:Gm.TreemapRows,defaultValue:[]}},superTypes:[]},TreemapRow:{name:UV.$type,properties:{indent:{name:UV.indent},item:{name:UV.item}},superTypes:[]}}}static{kt(this,"MermaidAstReflection")}},Oc=new ZTe,lat=kt(()=>ITe??(ITe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"ArchitectureGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[(?:\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'|[\\\\w ]+)\\\\]/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}`)),"ArchitectureGrammarGrammar"),cat=kt(()=>OTe??(OTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"GitGraphGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}`)),"GitGraphGrammarGrammar"),uat=kt(()=>PTe??(PTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"InfoGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"InfoGrammarGrammar"),hat=kt(()=>BTe??(BTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"PacketGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"PacketGrammarGrammar"),fat=kt(()=>FTe??(FTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"PieGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"PieGrammarGrammar"),dat=kt(()=>$Te??($Te=Hu(`{"$type":"Grammar","isDeclared":true,"name":"RadarGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}},"isMulti":false}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"types":[]}`)),"RadarGrammarGrammar"),pat=kt(()=>zTe??(zTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"TreemapGrammar","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@15"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammarGrammar"),mat={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},gat={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},yat={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},vat={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},xat={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},bat={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Tat={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},qs={AstReflection:kt(()=>new ZTe,"AstReflection")},ZV={Grammar:kt(()=>lat(),"Grammar"),LanguageMetaData:kt(()=>mat,"LanguageMetaData"),parser:{}},JV={Grammar:kt(()=>cat(),"Grammar"),LanguageMetaData:kt(()=>gat,"LanguageMetaData"),parser:{}},eq={Grammar:kt(()=>uat(),"Grammar"),LanguageMetaData:kt(()=>yat,"LanguageMetaData"),parser:{}},tq={Grammar:kt(()=>hat(),"Grammar"),LanguageMetaData:kt(()=>vat,"LanguageMetaData"),parser:{}},rq={Grammar:kt(()=>fat(),"Grammar"),LanguageMetaData:kt(()=>xat,"LanguageMetaData"),parser:{}},nq={Grammar:kt(()=>dat(),"Grammar"),LanguageMetaData:kt(()=>bat,"LanguageMetaData"),parser:{}},iq={Grammar:kt(()=>pat(),"Grammar"),LanguageMetaData:kt(()=>Tat,"LanguageMetaData"),parser:{}},wat=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,kat=/accTitle[\t ]*:([^\n\r]*)/,Eat=/title([\t ][^\n\r]*|)/,Sat={ACC_DESCR:wat,ACC_TITLE:kat,TITLE:Eat},cp=class extends Sm{static{o(this,"AbstractMermaidValueConverter")}static{kt(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=Sat[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},rf=class extends cp{static{o(this,"CommonValueConverter")}static{kt(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},ms=class extends ef{static{o(this,"AbstractMermaidTokenBuilder")}static{kt(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},Cat=class extends ms{static{o(this,"CommonTokenBuilder")}static{kt(this,"CommonTokenBuilder")}}});function o7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),JV,s7);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var Aat,s7,aq=O(()=>{"use strict";gs();tl();Aat=class extends ms{static{o(this,"GitGraphTokenBuilder")}static{kt(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},s7={parser:{TokenBuilder:kt(()=>new Aat,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(o7,"createGitGraphServices");kt(o7,"createGitGraphServices")});function c7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),eq,l7);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var _at,l7,sq=O(()=>{"use strict";gs();tl();_at=class extends ms{static{o(this,"InfoTokenBuilder")}static{kt(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},l7={parser:{TokenBuilder:kt(()=>new _at,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(c7,"createInfoServices");kt(c7,"createInfoServices")});function h7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),tq,u7);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var Dat,u7,oq=O(()=>{"use strict";gs();tl();Dat=class extends ms{static{o(this,"PacketTokenBuilder")}static{kt(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},u7={parser:{TokenBuilder:kt(()=>new Dat,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(h7,"createPacketServices");kt(h7,"createPacketServices")});function d7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),rq,f7);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var Rat,Lat,f7,lq=O(()=>{"use strict";gs();tl();Rat=class extends ms{static{o(this,"PieTokenBuilder")}static{kt(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},Lat=class extends cp{static{o(this,"PieValueConverter")}static{kt(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},f7={parser:{TokenBuilder:kt(()=>new Rat,"TokenBuilder"),ValueConverter:kt(()=>new Lat,"ValueConverter")}};o(d7,"createPieServices");kt(d7,"createPieServices")});function m7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),ZV,p7);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var Nat,Mat,p7,cq=O(()=>{"use strict";gs();tl();Nat=class extends ms{static{o(this,"ArchitectureTokenBuilder")}static{kt(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},Mat=class extends cp{static{o(this,"ArchitectureValueConverter")}static{kt(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE"){let n=e.replace(/^\[|]$/g,"").trim();return(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))&&(n=n.slice(1,-1),n=n.replace(/\\"/g,'"').replace(/\\'/g,"'")),n.trim()}}},p7={parser:{TokenBuilder:kt(()=>new Nat,"TokenBuilder"),ValueConverter:kt(()=>new Mat,"ValueConverter")}};o(m7,"createArchitectureServices");kt(m7,"createArchitectureServices")});function y7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),nq,g7);return e.ServiceRegistry.register(r),{shared:e,Radar:r}}var Iat,g7,uq=O(()=>{"use strict";gs();tl();Iat=class extends ms{static{o(this,"RadarTokenBuilder")}static{kt(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},g7={parser:{TokenBuilder:kt(()=>new Iat,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(y7,"createRadarServices");kt(y7,"createRadarServices")});function JTe(t){let e=t.validation.TreemapValidator,r=t.validation.ValidationRegistry;if(r){let n={Treemap:e.checkSingleRoot.bind(e)};r.register(n,e)}}function x7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),iq,v7);return e.ServiceRegistry.register(r),JTe(r),{shared:e,Treemap:r}}var Oat,Pat,Bat,Fat,v7,hq=O(()=>{"use strict";gs();tl();Oat=class extends ms{static{o(this,"TreemapTokenBuilder")}static{kt(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},Pat=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Bat=class extends cp{static{o(this,"TreemapValueConverter")}static{kt(this,"TreemapValueConverter")}runCustomConverter(t,e,r){if(t.name==="NUMBER2")return parseFloat(e.replace(/,/g,""));if(t.name==="SEPARATOR")return e.substring(1,e.length-1);if(t.name==="STRING2")return e.substring(1,e.length-1);if(t.name==="INDENTATION")return e.length;if(t.name==="ClassDef"){if(typeof e!="string")return e;let n=Pat.exec(e);if(n)return{$type:"ClassDefStatement",className:n[1],styleText:n[2]||void 0}}}};o(JTe,"registerValidationChecks");kt(JTe,"registerValidationChecks");Fat=class{static{o(this,"TreemapValidator")}static{kt(this,"TreemapValidator")}checkSingleRoot(t,e){let r;for(let n of t.TreemapRows)n.item&&(r===void 0&&n.indent===void 0?r=0:n.indent===void 0?e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}):r!==void 0&&r>=parseInt(n.indent,10)&&e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},v7={parser:{TokenBuilder:kt(()=>new Oat,"TokenBuilder"),ValueConverter:kt(()=>new Bat,"ValueConverter")},validation:{TreemapValidator:kt(()=>new Fat,"TreemapValidator")}};o(x7,"createTreemapServices");kt(x7,"createTreemapServices")});var e4e={};vr(e4e,{InfoModule:()=>l7,createInfoServices:()=>c7});var t4e=O(()=>{"use strict";sq();gs()});var r4e={};vr(r4e,{PacketModule:()=>u7,createPacketServices:()=>h7});var n4e=O(()=>{"use strict";oq();gs()});var i4e={};vr(i4e,{PieModule:()=>f7,createPieServices:()=>d7});var a4e=O(()=>{"use strict";lq();gs()});var s4e={};vr(s4e,{ArchitectureModule:()=>p7,createArchitectureServices:()=>m7});var o4e=O(()=>{"use strict";cq();gs()});var l4e={};vr(l4e,{GitGraphModule:()=>s7,createGitGraphServices:()=>o7});var c4e=O(()=>{"use strict";aq();gs()});var u4e={};vr(u4e,{RadarModule:()=>g7,createRadarServices:()=>y7});var h4e=O(()=>{"use strict";uq();gs()});var f4e={};vr(f4e,{TreemapModule:()=>v7,createTreemapServices:()=>x7});var d4e=O(()=>{"use strict";hq();gs()});async function Us(t,e){let r=$at[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);nf[t]||await r();let i=nf[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new zat(i);return i.value}var nf,$at,zat,up=O(()=>{"use strict";aq();sq();oq();lq();cq();uq();hq();gs();nf={},$at={info:kt(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(t4e(),e4e)),e=t().Info.parser.LangiumParser;nf.info=e},"info"),packet:kt(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(n4e(),r4e)),e=t().Packet.parser.LangiumParser;nf.packet=e},"packet"),pie:kt(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(a4e(),i4e)),e=t().Pie.parser.LangiumParser;nf.pie=e},"pie"),architecture:kt(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(o4e(),s4e)),e=t().Architecture.parser.LangiumParser;nf.architecture=e},"architecture"),gitGraph:kt(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(c4e(),l4e)),e=t().GitGraph.parser.LangiumParser;nf.gitGraph=e},"gitGraph"),radar:kt(async()=>{let{createRadarServices:t}=await Promise.resolve().then(()=>(h4e(),u4e)),e=t().Radar.parser.LangiumParser;nf.radar=e},"radar"),treemap:kt(async()=>{let{createTreemapServices:t}=await Promise.resolve().then(()=>(d4e(),f4e)),e=t().Treemap.parser.LangiumParser;nf.treemap=e},"treemap")};o(Us,"parse");kt(Us,"parse");zat=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>{let i=n.line!==void 0&&!isNaN(n.line)?n.line:"?",a=n.column!==void 0&&!isNaN(n.column)?n.column:"?";return`Lexer error on line ${i}, column ${a}: ${n.message}`}).join(` +`),r=t.parserErrors.map(n=>{let i=n.token.startLine!==void 0&&!isNaN(n.token.startLine)?n.token.startLine:"?",a=n.token.startColumn!==void 0&&!isNaN(n.token.startColumn)?n.token.startColumn:"?";return`Parse error on line ${i}, column ${a}: ${n.message}`}).join(` +`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{kt(this,"MermaidParseError")}}});function ql(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var Vm=O(()=>{"use strict";o(ql,"populateCommonDb")});var gn,b7=O(()=>{"use strict";gn={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var Rv,fq=O(()=>{"use strict";Rv=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function dq(){return NN({length:7})}function Vat(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function p4e(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function g4e(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+=" *":r+=" |"});let n=[r,e.id,e.seq];for(let i in Mt.records.branches)Mt.records.branches.get(i)===e.id&&n.push(i);if(K.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=Mt.records.commits.get(e.parents[0]);p4e(t,e,i),e.parents[1]&&t.push(Mt.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=Mt.records.commits.get(e.parents[0]);p4e(t,e,i)}}t=Vat(t,i=>i.id),g4e(t)}var Gat,qm,Mt,qat,Uat,Wat,Hat,Yat,jat,Xat,m4e,Kat,Qat,Zat,Jat,est,y4e,tst,rst,nst,T7,pq=O(()=>{"use strict";xt();ar();$r();Ur();si();b7();fq();La();Gat=gr.gitGraph,qm=o(()=>Pn({...Gat,...Zt().gitGraph}),"getConfig"),Mt=new Rv(()=>{let t=qm(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(dq,"getID");o(Vat,"uniqBy");qat=o(function(t){Mt.records.direction=t},"setDirection"),Uat=o(function(t){K.debug("options str",t),t=t?.trim(),t=t||"{}";try{Mt.records.options=JSON.parse(t)}catch(e){K.error("error while parsing gitGraph options",e.message)}},"setOptions"),Wat=o(function(){return Mt.records.options},"getOptions"),Hat=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;K.info("commit",e,r,n,i),K.debug("Entering commit:",e,r,n,i);let a=qm();r=st.sanitizeText(r,a),e=st.sanitizeText(e,a),i=i?.map(l=>st.sanitizeText(l,a));let s={id:r||Mt.records.seq+"-"+dq(),message:e,seq:Mt.records.seq++,type:n??gn.NORMAL,tags:i??[],parents:Mt.records.head==null?[]:[Mt.records.head.id],branch:Mt.records.currBranch};Mt.records.head=s,K.info("main branch",a.mainBranchName),Mt.records.commits.has(s.id)&&K.warn(`Commit ID ${s.id} already exists`),Mt.records.commits.set(s.id,s),Mt.records.branches.set(Mt.records.currBranch,s.id),K.debug("in pushCommit "+s.id)},"commit"),Yat=o(function(t){let e=t.name,r=t.order;if(e=st.sanitizeText(e,qm()),Mt.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);Mt.records.branches.set(e,Mt.records.head!=null?Mt.records.head.id:null),Mt.records.branchConfig.set(e,{name:e,order:r}),m4e(e),K.debug("in createBranch")},"branch"),jat=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=qm();e=st.sanitizeText(e,a),r&&(r=st.sanitizeText(r,a));let s=Mt.records.branches.get(Mt.records.currBranch),l=Mt.records.branches.get(e),u=s?Mt.records.commits.get(s):void 0,h=l?Mt.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(Mt.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${Mt.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!Mt.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&Mt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${Mt.records.seq}-${dq()}`,message:`merged branch ${e} into ${Mt.records.currBranch}`,seq:Mt.records.seq++,parents:Mt.records.head==null?[]:[Mt.records.head.id,f],branch:Mt.records.currBranch,type:gn.MERGE,customType:n,customId:!!r,tags:i??[]};Mt.records.head=d,Mt.records.commits.set(d.id,d),Mt.records.branches.set(Mt.records.currBranch,d.id),K.debug(Mt.records.branches),K.debug("in mergeBranch")},"merge"),Xat=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;K.debug("Entering cherryPick:",e,r,n);let a=qm();if(e=st.sanitizeText(e,a),r=st.sanitizeText(r,a),n=n?.map(u=>st.sanitizeText(u,a)),i=st.sanitizeText(i,a),!e||!Mt.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=Mt.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===gn.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!Mt.records.commits.has(r)){if(l===Mt.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=Mt.records.branches.get(Mt.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Mt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=Mt.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Mt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:Mt.records.seq+"-"+dq(),message:`cherry-picked ${s?.message} into ${Mt.records.currBranch}`,seq:Mt.records.seq++,parents:Mt.records.head==null?[]:[Mt.records.head.id,s.id],branch:Mt.records.currBranch,type:gn.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===gn.MERGE?`|parent:${i}`:""}`]};Mt.records.head=f,Mt.records.commits.set(f.id,f),Mt.records.branches.set(Mt.records.currBranch,f.id),K.debug(Mt.records.branches),K.debug("in cherryPick")}},"cherryPick"),m4e=o(function(t){if(t=st.sanitizeText(t,qm()),Mt.records.branches.has(t)){Mt.records.currBranch=t;let e=Mt.records.branches.get(Mt.records.currBranch);e===void 0||!e?Mt.records.head=null:Mt.records.head=Mt.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(p4e,"upsert");o(g4e,"prettyPrintCommitHistory");Kat=o(function(){K.debug(Mt.records.commits);let t=y4e()[0];g4e([t])},"prettyPrint"),Qat=o(function(){Mt.reset(),_r()},"clear"),Zat=o(function(){return[...Mt.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),Jat=o(function(){return Mt.records.branches},"getBranches"),est=o(function(){return Mt.records.commits},"getCommits"),y4e=o(function(){let t=[...Mt.records.commits.values()];return t.forEach(function(e){K.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),tst=o(function(){return Mt.records.currBranch},"getCurrentBranch"),rst=o(function(){return Mt.records.direction},"getDirection"),nst=o(function(){return Mt.records.head},"getHead"),T7={commitType:gn,getConfig:qm,setDirection:qat,setOptions:Uat,getOptions:Wat,commit:Hat,branch:Yat,merge:jat,cherryPick:Xat,checkout:m4e,prettyPrint:Kat,clear:Qat,getBranchesAsObjArray:Zat,getBranches:Jat,getCommits:est,getCommitsArray:y4e,getCurrentBranch:tst,getDirection:rst,getHead:nst,setAccTitle:Lr,getAccTitle:Or,getAccDescription:Br,setAccDescription:Pr,setDiagramTitle:zr,getDiagramTitle:Fr}});var ist,ast,sst,ost,lst,cst,ust,v4e,x4e=O(()=>{"use strict";up();xt();Vm();pq();b7();ist=o((t,e)=>{ql(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)ast(r,e)},"populate"),ast=o((t,e)=>{let n={Commit:o(i=>e.commit(sst(i)),"Commit"),Branch:o(i=>e.branch(ost(i)),"Branch"),Merge:o(i=>e.merge(lst(i)),"Merge"),Checkout:o(i=>e.checkout(cst(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(ust(i)),"CherryPicking")}[t.$type];n?n(t):K.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),sst=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?gn[t.type]:gn.NORMAL,tags:t.tags??void 0}),"parseCommit"),ost=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),lst=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?gn[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),cst=o(t=>t.branch,"parseCheckout"),ust=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),v4e={parse:o(async t=>{let e=await Us("gitGraph",t);K.debug(e),ist(e,T7)},"parse")}});var fp,dp,Xu,af,Um,Do,Ro,w7,s3,k7,hp,en,hst,T4e,w4e,fst,dst,pst,mst,gst,yst,vst,xst,bst,Tst,wst,kst,b4e,Est,o3,Sst,Cst,Ast,_st,Dst,k4e,E4e=O(()=>{"use strict";Ar();jt();xt();ar();b7();fp=10,dp=40,Xu=4,af=2,Um=8,Do=new Map,Ro=new Map,w7=30,s3=new Map,k7=[],hp=0,en="LR",hst=o(()=>{Do.clear(),Ro.clear(),s3.clear(),hp=0,k7=[],en="LR"},"clear"),T4e=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),e.appendChild(i)}),e},"drawText"),w4e=o(t=>{let e,r,n;return en==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=en==="TB"||en=="BT"?Ro.get(i)?.y:Ro.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),fst=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Ro.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),dst=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=mst(l),i=Math.max(n,i)):a.push(l),gst(l,n)}),n=i,a.forEach(s=>{yst(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=fst(l.parents);n=Ro.get(u).y-dp,n<=i&&(i=n);let h=Do.get(l.branch).pos,f=n-fp;Ro.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),pst=o(t=>{let e=w4e(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Ro.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),mst=o(t=>pst(t)+dp,"calculateCommitPosition"),gst=o((t,e)=>{let r=Do.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+fp;return Ro.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),yst=o((t,e,r)=>{let n=Do.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Ro.set(t.id,{x:a,y:i})},"setRootPosition"),vst=o((t,e,r,n,i,a)=>{if(a===gn.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%Um} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%Um} ${n}-inner`);else if(a===gn.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===gn.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%Um}`),a===gn.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%Um}`)}a===gn.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%Um}`)}},"drawCommitBullet"),xst=o((t,e,r,n,i)=>{if(e.type!==gn.CHERRY_PICK&&(e.customId&&e.type===gn.MERGE||e.type!==gn.MERGE)&&i.showCommitLabel){let a=t.append("g"),s=a.insert("rect").attr("class","commit-label-bkg"),l=a.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),u=l.node()?.getBBox();if(u&&(s.attr("x",r.posWithOffset-u.width/2-af).attr("y",r.y+13.5).attr("width",u.width+2*af).attr("height",u.height+2*af),en==="TB"||en==="BT"?(s.attr("x",r.x-(u.width+4*Xu+5)).attr("y",r.y-12),l.attr("x",r.x-(u.width+4*Xu)).attr("y",r.y+u.height-12)):l.attr("x",r.posWithOffset-u.width/2),i.rotateCommitLabel))if(en==="TB"||en==="BT")l.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),s.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let h=-7.5-(u.width+10)/25*9.5,f=10+u.width/25*8.5;a.attr("transform","translate("+h+", "+f+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),bst=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Xu/2},${m+af} + ${n-a/2-Xu/2},${m-af} + ${r.posWithOffset-a/2-Xu},${m-p-af} + ${r.posWithOffset+a/2+Xu},${m-p-af} + ${r.posWithOffset+a/2+Xu},${m+p+af} + ${r.posWithOffset-a/2-Xu},${m+p+af}`),h.attr("cy",m).attr("cx",n-a/2+Xu/2).attr("r",1.5).attr("class","tag-hole"),en==="TB"||en==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+fp},${g-p-2} + ${r.x+fp+a+4},${g-p-2} + ${r.x+fp+a+4},${g+p+2} + ${r.x+fp},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Xu/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),Tst=o(t=>{switch(t.customType??t.type){case gn.NORMAL:return"commit-normal";case gn.REVERSE:return"commit-reverse";case gn.HIGHLIGHT:return"commit-highlight";case gn.MERGE:return"commit-merge";case gn.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),wst=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=w4e(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+dp:e==="BT"?(n.get(t.id)??i).y-dp:s.x+dp}}else return e==="TB"?w7:e==="BT"?(n.get(t.id)??i).y-dp:0;return 0},"calculatePosition"),kst=o((t,e,r)=>{let n=en==="BT"&&r?e:e+fp,i=en==="TB"||en==="BT"?n:Do.get(t.branch)?.pos,a=en==="TB"||en==="BT"?Do.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),b4e=o((t,e,r,n)=>{let i=t.append("g").attr("class","commit-bullets"),a=t.append("g").attr("class","commit-labels"),s=en==="TB"||en==="BT"?w7:0,l=[...e.keys()],u=n.parallelCommits??!1,h=o((d,p)=>{let m=e.get(d)?.seq,g=e.get(p)?.seq;return m!==void 0&&g!==void 0?m-g:0},"sortKeys"),f=l.sort(h);en==="BT"&&(u&&dst(f,e,s),f=f.reverse()),f.forEach(d=>{let p=e.get(d);if(!p)throw new Error(`Commit not found for key ${d}`);u&&(s=wst(p,en,s,Ro));let m=kst(p,s,u);if(r){let g=Tst(p),y=p.customType??p.type,v=Do.get(p.branch)?.index??0;vst(i,p,m,g,v,y),xst(a,p,m,s,n),bst(a,p,m,s)}en==="TB"||en==="BT"?Ro.set(p.id,{x:m.x,y:m.posWithOffset}):Ro.set(p.id,{x:m.posWithOffset,y:m.y}),s=en==="BT"&&u?s+dp:s+dp+fp,s>hp&&(hp=s)})},"drawCommits"),Est=o((t,e,r,n,i)=>{let s=(en==="TB"||en==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),o3=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(k7.every(s=>Math.abs(s-n)>=10))return k7.push(n),n;let a=Math.abs(t-e);return o3(t,e-a/5,r+1)},"findLane"),Sst=o((t,e,r,n)=>{let i=Ro.get(e.id),a=Ro.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=Est(e,r,i,a,n),l="",u="",h=0,f=0,d=Do.get(r.branch)?.index;r.type===gn.MERGE&&e.id!==r.parents[0]&&(d=Do.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===gn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):en==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===gn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${u} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===gn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%Um)},"drawArrow"),Cst=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{Sst(r,e.get(a),i,e)})})},"drawArrows"),Ast=o((t,e,r)=>{let n=t.append("g");e.forEach((i,a)=>{let s=a%Um,l=Do.get(i.name)?.pos;if(l===void 0)throw new Error(`Position not found for branch ${i.name}`);let u=n.append("line");u.attr("x1",0),u.attr("y1",l),u.attr("x2",hp),u.attr("y2",l),u.attr("class","branch branch"+s),en==="TB"?(u.attr("y1",w7),u.attr("x1",l),u.attr("y2",hp),u.attr("x2",l)):en==="BT"&&(u.attr("y1",hp),u.attr("x1",l),u.attr("y2",w7),u.attr("x2",l)),k7.push(l);let h=i.name,f=T4e(h),d=n.insert("rect"),m=n.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+s);m.node().appendChild(f);let g=f.getBBox();d.attr("class","branchLabelBkg label"+s).attr("rx",4).attr("ry",4).attr("x",-g.width-4-(r.rotateCommitLabel===!0?30:0)).attr("y",-g.height/2+8).attr("width",g.width+18).attr("height",g.height+4),m.attr("transform","translate("+(-g.width-14-(r.rotateCommitLabel===!0?30:0))+", "+(l-g.height/2-1)+")"),en==="TB"?(d.attr("x",l-g.width/2-10).attr("y",0),m.attr("transform","translate("+(l-g.width/2-5)+", 0)")):en==="BT"?(d.attr("x",l-g.width/2-10).attr("y",hp),m.attr("transform","translate("+(l-g.width/2-5)+", "+hp+")")):d.attr("transform","translate(-19, "+(l-g.height/2)+")")})},"drawBranches"),_st=o(function(t,e,r,n,i){return Do.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(en==="TB"||en==="BT"?n.width/2:0),e},"setBranchPosition"),Dst=o(function(t,e,r,n){hst(),K.debug("in gitgraph renderer",t+` +`,"id:",e,r);let i=n.db;if(!i.getConfig){K.error("getConfig method is not available on db");return}let a=i.getConfig(),s=a.rotateCommitLabel??!1;s3=i.getCommits();let l=i.getBranchesAsObjArray();en=i.getDirection();let u=je(`[id="${e}"]`),h=0;l.forEach((f,d)=>{let p=T4e(f.name),m=u.append("g"),g=m.insert("g").attr("class","branchLabel"),y=g.insert("g").attr("class","label branch-label");y.node()?.appendChild(p);let v=p.getBBox();h=_st(f.name,h,d,v,s),y.remove(),g.remove(),m.remove()}),b4e(u,s3,!1,a),a.showBranches&&Ast(u,l,a),Cst(u,s3),b4e(u,s3,!0,a),Xt.insertTitle(u,"gitTitleText",a.titleTopMargin??0,i.getDiagramTitle()),_D(void 0,u,a.diagramPadding,a.useMaxWidth)},"draw"),k4e={draw:Dst}});var Rst,S4e,C4e=O(()=>{"use strict";Rst=o(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),S4e=Rst});var A4e={};vr(A4e,{diagram:()=>Lst});var Lst,_4e=O(()=>{"use strict";x4e();pq();E4e();C4e();Lst={parser:v4e,db:T7,renderer:k4e,styles:S4e}});var mq,L4e,N4e=O(()=>{"use strict";mq=(function(){var t=o(function(_,D,M,R){for(M=M||{},R=_.length;R--;M[_[R]]=D);return M},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],T=[1,19],E=[1,20],w=[1,21],k=[1,22],S=[1,23],A=[1,25],L=[1,35],I={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(D,M,R,P,B,F,G){var $=F.length-1;switch(B){case 1:return F[$-1];case 2:this.$=[];break;case 3:F[$-1].push(F[$]),this.$=F[$-1];break;case 4:case 5:this.$=F[$];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(F[$].substr(11)),this.$=F[$].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=F[$].substr(18);break;case 19:P.TopAxis(),this.$=F[$].substr(8);break;case 20:P.setAxisFormat(F[$].substr(11)),this.$=F[$].substr(11);break;case 21:P.setTickInterval(F[$].substr(13)),this.$=F[$].substr(13);break;case 22:P.setExcludes(F[$].substr(9)),this.$=F[$].substr(9);break;case 23:P.setIncludes(F[$].substr(9)),this.$=F[$].substr(9);break;case 24:P.setTodayMarker(F[$].substr(12)),this.$=F[$].substr(12);break;case 27:P.setDiagramTitle(F[$].substr(6)),this.$=F[$].substr(6);break;case 28:this.$=F[$].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=F[$].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(F[$].substr(8)),this.$=F[$].substr(8);break;case 33:P.addTask(F[$-1],F[$]),this.$="task";break;case 34:this.$=F[$-1],P.setClickEvent(F[$-1],F[$],null);break;case 35:this.$=F[$-2],P.setClickEvent(F[$-2],F[$-1],F[$]);break;case 36:this.$=F[$-2],P.setClickEvent(F[$-2],F[$-1],null),P.setLink(F[$-2],F[$]);break;case 37:this.$=F[$-3],P.setClickEvent(F[$-3],F[$-2],F[$-1]),P.setLink(F[$-3],F[$]);break;case 38:this.$=F[$-2],P.setClickEvent(F[$-2],F[$],null),P.setLink(F[$-2],F[$-1]);break;case 39:this.$=F[$-3],P.setClickEvent(F[$-3],F[$-1],F[$]),P.setLink(F[$-3],F[$-2]);break;case 40:this.$=F[$-1],P.setLink(F[$-1],F[$]);break;case 41:case 47:this.$=F[$-1]+" "+F[$];break;case 42:case 43:case 45:this.$=F[$-2]+" "+F[$-1]+" "+F[$];break;case 44:case 46:this.$=F[$-3]+" "+F[$-2]+" "+F[$-1]+" "+F[$];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:E,33:w,35:k,36:S,37:24,38:A,40:L},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:E,33:w,35:k,36:S,37:24,38:A,40:L},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(D,M){if(M.recoverable)this.trace(D);else{var R=new Error(D);throw R.hash=M,R}},"parseError"),parse:o(function(D){var M=this,R=[0],P=[],B=[null],F=[],G=this.table,$="",V=0,X=0,Q=0,H=2,ie=1,Y=F.slice.call(arguments,1),le=Object.create(this.lexer),ee={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(ee.yy[J]=this.yy[J]);le.setInput(D,ee.yy),ee.yy.lexer=le,ee.yy.parser=this,typeof le.yylloc>"u"&&(le.yylloc={});var te=le.yylloc;F.push(te);var Z=le.options&&le.options.ranges;typeof ee.yy.parseError=="function"?this.parseError=ee.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xe(Ne){R.length=R.length-2*Ne,B.length=B.length-Ne,F.length=F.length-Ne}o(xe,"popStack");function de(){var Ne;return Ne=P.pop()||le.lex()||ie,typeof Ne!="number"&&(Ne instanceof Array&&(P=Ne,Ne=P.pop()),Ne=M.symbols_[Ne]||Ne),Ne}o(de,"lex");for(var Se,Me,ke,we,_e,$e,fe={},Ke,Te,Be,Ue;;){if(ke=R[R.length-1],this.defaultActions[ke]?we=this.defaultActions[ke]:((Se===null||typeof Se>"u")&&(Se=de()),we=G[ke]&&G[ke][Se]),typeof we>"u"||!we.length||!we[0]){var Ge="";Ue=[];for(Ke in G[ke])this.terminals_[Ke]&&Ke>H&&Ue.push("'"+this.terminals_[Ke]+"'");le.showPosition?Ge="Parse error on line "+(V+1)+`: +`+le.showPosition()+` +Expecting `+Ue.join(", ")+", got '"+(this.terminals_[Se]||Se)+"'":Ge="Parse error on line "+(V+1)+": Unexpected "+(Se==ie?"end of input":"'"+(this.terminals_[Se]||Se)+"'"),this.parseError(Ge,{text:le.match,token:this.terminals_[Se]||Se,line:le.yylineno,loc:te,expected:Ue})}if(we[0]instanceof Array&&we.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ke+", token: "+Se);switch(we[0]){case 1:R.push(Se),B.push(le.yytext),F.push(le.yylloc),R.push(we[1]),Se=null,Me?(Se=Me,Me=null):(X=le.yyleng,$=le.yytext,V=le.yylineno,te=le.yylloc,Q>0&&Q--);break;case 2:if(Te=this.productions_[we[1]][1],fe.$=B[B.length-Te],fe._$={first_line:F[F.length-(Te||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(Te||1)].first_column,last_column:F[F.length-1].last_column},Z&&(fe._$.range=[F[F.length-(Te||1)].range[0],F[F.length-1].range[1]]),$e=this.performAction.apply(fe,[$,X,V,ee.yy,we[1],B,F].concat(Y)),typeof $e<"u")return $e;Te&&(R=R.slice(0,-1*Te*2),B=B.slice(0,-1*Te),F=F.slice(0,-1*Te)),R.push(this.productions_[we[1]][0]),B.push(fe.$),F.push(fe._$),Be=G[R[R.length-2]][R[R.length-1]],R.push(Be);break;case 3:return!0}}return!0},"parse")},N=(function(){var _={EOF:1,parseError:o(function(M,R){if(this.yy.parser)this.yy.parser.parseError(M,R);else throw new Error(M)},"parseError"),setInput:o(function(D,M){return this.yy=M||this.yy||{},this._input=D,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var D=this._input[0];this.yytext+=D,this.yyleng++,this.offset++,this.match+=D,this.matched+=D;var M=D.match(/(?:\r\n?|\n).*/g);return M?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),D},"input"),unput:o(function(D){var M=D.length,R=D.split(/(?:\r\n?|\n)/g);this._input=D+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-M),this.offset-=M;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),R.length-1&&(this.yylineno-=R.length-1);var B=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:R?(R.length===P.length?this.yylloc.first_column:0)+P[P.length-R.length].length-R[0].length:this.yylloc.first_column-M},this.options.ranges&&(this.yylloc.range=[B[0],B[0]+this.yyleng-M]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(D){this.unput(this.match.slice(D))},"less"),pastInput:o(function(){var D=this.matched.substr(0,this.matched.length-this.match.length);return(D.length>20?"...":"")+D.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var D=this.match;return D.length<20&&(D+=this._input.substr(0,20-D.length)),(D.substr(0,20)+(D.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var D=this.pastInput(),M=new Array(D.length+1).join("-");return D+this.upcomingInput()+` +`+M+"^"},"showPosition"),test_match:o(function(D,M){var R,P,B;if(this.options.backtrack_lexer&&(B={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(B.yylloc.range=this.yylloc.range.slice(0))),P=D[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(D[0].length),this.matched+=D[0],R=this.performAction.call(this,this.yy,this,M,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),R)return R;if(this._backtrack){for(var F in B)this[F]=B[F];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var D,M,R,P;this._more||(this.yytext="",this.match="");for(var B=this._currentRules(),F=0;FM[0].length)){if(M=R,P=F,this.options.backtrack_lexer){if(D=this.test_match(R,B[F]),D!==!1)return D;if(this._backtrack){M=!1;continue}else return!1}else if(!this.options.flex)break}return M?(D=this.test_match(M,B[P]),D!==!1?D:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var M=this.next();return M||this.lex()},"lex"),begin:o(function(M){this.conditionStack.push(M)},"begin"),popState:o(function(){var M=this.conditionStack.length-1;return M>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(M){return M=this.conditionStack.length-1-Math.abs(M||0),M>=0?this.conditionStack[M]:"INITIAL"},"topState"),pushState:o(function(M){this.begin(M)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(M,R,P,B){var F=B;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return _})();I.lexer=N;function C(){this.yy={}}return o(C,"Parser"),C.prototype=I,I.Parser=C,new C})();mq.parser=mq;L4e=mq});var M4e=nr((gq,yq)=>{"use strict";(function(t,e){typeof gq=="object"&&typeof yq<"u"?yq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(gq,(function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}}))});var I4e=nr((vq,xq)=>{"use strict";(function(t,e){typeof vq=="object"&&typeof xq<"u"?xq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(vq,(function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=(function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x})(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map((function(x){return x.slice(0,3)}))).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(A,L,I){var N=I&&I.toUpperCase();return L||v[I]||t[I]||v[N].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(C,_,D){return _||D.slice(1)}))}))).match(e),b=x.length,T=0;T-1)return new Date((R==="X"?1e3:1)*M);var F=m(R)(M),G=F.year,$=F.month,V=F.day,X=F.hours,Q=F.minutes,H=F.seconds,ie=F.milliseconds,Y=F.zone,le=F.week,ee=new Date,J=V||(G||$?1:ee.getDate()),te=G||ee.getFullYear(),Z=0;G&&!$||(Z=$>0?$-1:ee.getMonth());var xe,de=X||0,Se=Q||0,Me=H||0,ke=ie||0;return Y?new Date(Date.UTC(te,Z,J,de,Se,Me,ke+60*Y.offset*1e3)):P?new Date(Date.UTC(te,Z,J,de,Se,Me,ke)):(xe=new Date(te,Z,J,de,Se,Me,ke),le&&(xe=B(xe).week(le).toDate()),xe)}catch{return new Date("")}})(E,S,w,v),this.init(),N&&N!==!0&&(this.$L=this.locale(N).$L),I&&E!=this.format(S)&&(this.$d=new Date("")),s={}}else if(S instanceof Array)for(var C=S.length,_=1;_<=C;_+=1){k[1]=S[_-1];var D=v.apply(this,k);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}_===C&&(this.$d=new Date(""))}else b.call(this,T)}}}))});var O4e=nr((bq,Tq)=>{"use strict";(function(t,e){typeof bq=="object"&&typeof Tq<"u"?Tq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(bq,(function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}}));return n.bind(this)(u)}}}))});function Q4e(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var F4e,il,$4e,z4e,G4e,P4e,Ku,Sq,Cq,Aq,l3,c3,_q,Dq,C7,Nv,Rq,V4e,Lq,u3,Nq,Mq,A7,wq,Ost,Pst,Bst,Fst,$st,zst,Gst,Vst,qst,Ust,Wst,Hst,Yst,jst,Xst,Kst,Qst,Zst,Jst,eot,tot,rot,not,q4e,iot,aot,sot,U4e,oot,kq,W4e,H4e,E7,Lv,lot,cot,Eq,S7,ua,Y4e,uot,Wm,hot,B4e,fot,j4e,dot,X4e,pot,mot,K4e,Z4e=O(()=>{"use strict";F4e=Ra(Wg(),1),il=Ra(U3(),1),$4e=Ra(M4e(),1),z4e=Ra(I4e(),1),G4e=Ra(O4e(),1);xt();jt();ar();si();il.default.extend($4e.default);il.default.extend(z4e.default);il.default.extend(G4e.default);P4e={friday:5,saturday:6},Ku="",Sq="",Aq="",l3=[],c3=[],_q=new Map,Dq=[],C7=[],Nv="",Rq="",V4e=["active","done","crit","milestone","vert"],Lq=[],u3=!1,Nq=!1,Mq="sunday",A7="saturday",wq=0,Ost=o(function(){Dq=[],C7=[],Nv="",Lq=[],E7=0,Eq=void 0,S7=void 0,ua=[],Ku="",Sq="",Rq="",Cq=void 0,Aq="",l3=[],c3=[],u3=!1,Nq=!1,wq=0,_q=new Map,_r(),Mq="sunday",A7="saturday"},"clear"),Pst=o(function(t){Sq=t},"setAxisFormat"),Bst=o(function(){return Sq},"getAxisFormat"),Fst=o(function(t){Cq=t},"setTickInterval"),$st=o(function(){return Cq},"getTickInterval"),zst=o(function(t){Aq=t},"setTodayMarker"),Gst=o(function(){return Aq},"getTodayMarker"),Vst=o(function(t){Ku=t},"setDateFormat"),qst=o(function(){u3=!0},"enableInclusiveEndDates"),Ust=o(function(){return u3},"endDatesAreInclusive"),Wst=o(function(){Nq=!0},"enableTopAxis"),Hst=o(function(){return Nq},"topAxisEnabled"),Yst=o(function(t){Rq=t},"setDisplayMode"),jst=o(function(){return Rq},"getDisplayMode"),Xst=o(function(){return Ku},"getDateFormat"),Kst=o(function(t){l3=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),Qst=o(function(){return l3},"getIncludes"),Zst=o(function(t){c3=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),Jst=o(function(){return c3},"getExcludes"),eot=o(function(){return _q},"getLinks"),tot=o(function(t){Nv=t,Dq.push(t)},"addSection"),rot=o(function(){return Dq},"getSections"),not=o(function(){let t=B4e(),e=10,r=0;for(;!t&&r{let u=l.trim();return u==="x"||u==="X"},"isTimestampFormat")(e)&&/^\d+$/.test(r))return new Date(Number(r));let a=/^after\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let l=null;for(let h of a.groups.ids.split(" ")){let f=Wm(h);f!==void 0&&(!l||f.endTime>l.endTime)&&(l=f)}if(l)return l.endTime;let u=new Date;return u.setHours(0,0,0,0),u}let s=(0,il.default)(r,e.trim(),!0);if(s.isValid())return s.toDate();{K.debug("Invalid date:"+r),K.debug("With date format:"+e.trim());let l=new Date(r);if(l===void 0||isNaN(l.getTime())||l.getFullYear()<-1e4||l.getFullYear()>1e4)throw new Error("Invalid date:"+r);return l}},"getStartDate"),W4e=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),H4e=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=Wm(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),_q.set(n,r))}),j4e(t,"clickable")},"setLink"),j4e=o(function(t,e){t.split(",").forEach(function(r){let n=Wm(r);n!==void 0&&n.classes.push(e)})},"setClass"),dot=o(function(t,e,r){if(ve().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Xt.runFunc(e,...n)})},"setClickFun"),X4e=o(function(t,e){Lq.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),pot=o(function(t,e,r){t.split(",").forEach(function(n){dot(n,e,r)}),j4e(t,"clickable")},"setClickEvent"),mot=o(function(t){Lq.forEach(function(e){e(t)})},"bindFunctions"),K4e={getConfig:o(()=>ve().gantt,"getConfig"),clear:Ost,setDateFormat:Vst,getDateFormat:Xst,enableInclusiveEndDates:qst,endDatesAreInclusive:Ust,enableTopAxis:Wst,topAxisEnabled:Hst,setAxisFormat:Pst,getAxisFormat:Bst,setTickInterval:Fst,getTickInterval:$st,setTodayMarker:zst,getTodayMarker:Gst,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,setDisplayMode:Yst,getDisplayMode:jst,setAccDescription:Pr,getAccDescription:Br,addSection:tot,getSections:rot,getTasks:not,addTask:uot,findTaskById:Wm,addTaskOrg:hot,setIncludes:Kst,getIncludes:Qst,setExcludes:Zst,getExcludes:Jst,setClickEvent:pot,setLink:fot,getLinks:eot,bindFunctions:mot,parseDuration:W4e,isInvalidDate:q4e,setWeekday:iot,getWeekday:aot,setWeekend:sot};o(Q4e,"getTaskTags")});var J4e=nr((Iq,Oq)=>{"use strict";(function(t,e){typeof Iq=="object"&&typeof Oq<"u"?Oq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_duration=e()})(Iq,(function(){"use strict";var t,e,r=1e3,n=6e4,i=36e5,a=864e5,s=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l=31536e6,u=2628e6,h=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,f={years:l,months:u,days:a,hours:i,minutes:n,seconds:r,milliseconds:1,weeks:6048e5},d=o(function(E){return E instanceof b},"c"),p=o(function(E,w,k){return new b(E,k,w.$l)},"f"),m=o(function(E){return e.p(E)+"s"},"m"),g=o(function(E){return E<0},"l"),y=o(function(E){return g(E)?Math.ceil(E):Math.floor(E)},"$"),v=o(function(E){return Math.abs(E)},"y"),x=o(function(E,w){return E?g(E)?{negative:!0,format:""+v(E)+w}:{negative:!1,format:""+E+w}:{negative:!1,format:""}},"v"),b=(function(){function E(k,S,A){var L=this;if(this.$d={},this.$l=A,k===void 0&&(this.$ms=0,this.parseFromMilliseconds()),S)return p(k*f[m(S)],this);if(typeof k=="number")return this.$ms=k,this.parseFromMilliseconds(),this;if(typeof k=="object")return Object.keys(k).forEach((function(C){L.$d[m(C)]=k[C]})),this.calMilliseconds(),this;if(typeof k=="string"){var I=k.match(h);if(I){var N=I.slice(2).map((function(C){return C!=null?Number(C):0}));return this.$d.years=N[0],this.$d.months=N[1],this.$d.weeks=N[2],this.$d.days=N[3],this.$d.hours=N[4],this.$d.minutes=N[5],this.$d.seconds=N[6],this.calMilliseconds(),this}}return this}o(E,"l");var w=E.prototype;return w.calMilliseconds=function(){var k=this;this.$ms=Object.keys(this.$d).reduce((function(S,A){return S+(k.$d[A]||0)*f[A]}),0)},w.parseFromMilliseconds=function(){var k=this.$ms;this.$d.years=y(k/l),k%=l,this.$d.months=y(k/u),k%=u,this.$d.days=y(k/a),k%=a,this.$d.hours=y(k/i),k%=i,this.$d.minutes=y(k/n),k%=n,this.$d.seconds=y(k/r),k%=r,this.$d.milliseconds=k},w.toISOString=function(){var k=x(this.$d.years,"Y"),S=x(this.$d.months,"M"),A=+this.$d.days||0;this.$d.weeks&&(A+=7*this.$d.weeks);var L=x(A,"D"),I=x(this.$d.hours,"H"),N=x(this.$d.minutes,"M"),C=this.$d.seconds||0;this.$d.milliseconds&&(C+=this.$d.milliseconds/1e3,C=Math.round(1e3*C)/1e3);var _=x(C,"S"),D=k.negative||S.negative||L.negative||I.negative||N.negative||_.negative,M=I.format||N.format||_.format?"T":"",R=(D?"-":"")+"P"+k.format+S.format+L.format+M+I.format+N.format+_.format;return R==="P"||R==="-P"?"P0D":R},w.toJSON=function(){return this.toISOString()},w.format=function(k){var S=k||"YYYY-MM-DDTHH:mm:ss",A={Y:this.$d.years,YY:e.s(this.$d.years,2,"0"),YYYY:e.s(this.$d.years,4,"0"),M:this.$d.months,MM:e.s(this.$d.months,2,"0"),D:this.$d.days,DD:e.s(this.$d.days,2,"0"),H:this.$d.hours,HH:e.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:e.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:e.s(this.$d.seconds,2,"0"),SSS:e.s(this.$d.milliseconds,3,"0")};return S.replace(s,(function(L,I){return I||String(A[L])}))},w.as=function(k){return this.$ms/f[m(k)]},w.get=function(k){var S=this.$ms,A=m(k);return A==="milliseconds"?S%=1e3:S=A==="weeks"?y(S/f[A]):this.$d[A],S||0},w.add=function(k,S,A){var L;return L=S?k*f[m(S)]:d(k)?k.$ms:p(k,this).$ms,p(this.$ms+L*(A?-1:1),this)},w.subtract=function(k,S){return this.add(k,S,!0)},w.locale=function(k){var S=this.clone();return S.$l=k,S},w.clone=function(){return p(this.$ms,this)},w.humanize=function(k){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!k)},w.valueOf=function(){return this.asMilliseconds()},w.milliseconds=function(){return this.get("milliseconds")},w.asMilliseconds=function(){return this.as("milliseconds")},w.seconds=function(){return this.get("seconds")},w.asSeconds=function(){return this.as("seconds")},w.minutes=function(){return this.get("minutes")},w.asMinutes=function(){return this.as("minutes")},w.hours=function(){return this.get("hours")},w.asHours=function(){return this.as("hours")},w.days=function(){return this.get("days")},w.asDays=function(){return this.as("days")},w.weeks=function(){return this.get("weeks")},w.asWeeks=function(){return this.as("weeks")},w.months=function(){return this.get("months")},w.asMonths=function(){return this.as("months")},w.years=function(){return this.get("years")},w.asYears=function(){return this.as("years")},E})(),T=o(function(E,w,k){return E.add(w.years()*k,"y").add(w.months()*k,"M").add(w.days()*k,"d").add(w.hours()*k,"h").add(w.minutes()*k,"m").add(w.seconds()*k,"s").add(w.milliseconds()*k,"ms")},"p");return function(E,w,k){t=k,e=k().$utils(),k.duration=function(L,I){var N=k.locale();return p(L,{$l:N},I)},k.isDuration=d;var S=w.prototype.add,A=w.prototype.subtract;w.prototype.add=function(L,I){return d(L)?T(this,L,1):S.bind(this)(L,I)},w.prototype.subtract=function(L,I){return d(L)?T(this,L,-1):A.bind(this)(L,I)}}}))});var Mv,t3e,got,e3e,yot,sf,Pq,vot,r3e,n3e=O(()=>{"use strict";Mv=Ra(U3(),1),t3e=Ra(J4e(),1);xt();Ar();Ur();jt();Ti();Mv.default.extend(t3e.default);got=o(function(){K.debug("Something is calling, setConf, remove the call")},"setConf"),e3e={monday:If,tuesday:M5,wednesday:I5,thursday:iu,friday:O5,saturday:P5,sunday:oc},yot=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),Pq=1e4,vot=o(function(t,e,r,n){let i=ve().gantt,a=ve().securityLevel,s;a==="sandbox"&&(s=je("#i"+e));let l=a==="sandbox"?je(s.nodes()[0].contentDocument.body):je("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);sf=h.parentElement.offsetWidth,sf===void 0&&(sf=1200),i.useWidth!==void 0&&(sf=i.useWidth);let f=n.db.getTasks(),d=[];for(let L of f)d.push(L.type);d=A(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let L={};for(let N of f)L[N.section]===void 0?L[N.section]=[N]:L[N.section].push(N);let I=0;for(let N of Object.keys(L)){let C=yot(L[N],I)+1;I+=C,m+=C*(i.barHeight+i.barGap),p[N]=C}}else{m+=f.length*(i.barHeight+i.barGap);for(let L of d)p[L]=f.filter(I=>I.type===L).length}h.setAttribute("viewBox","0 0 "+sf+" "+m);let g=l.select(`[id="${e}"]`),y=$5().domain([Uw(f,function(L){return L.startTime}),qw(f,function(L){return L.endTime})]).rangeRound([0,sf-i.leftPadding-i.rightPadding]);function v(L,I){let N=L.startTime,C=I.startTime,_=0;return N>C?_=1:N$.vert===V.vert?0:$.vert?1:-1);let P=[...new Set(L.map($=>$.order))].map($=>L.find(V=>V.order===$));g.append("g").selectAll("rect").data(P).enter().append("rect").attr("x",0).attr("y",function($,V){return V=$.order,V*I+N-2}).attr("width",function(){return M-i.rightPadding/2}).attr("height",I).attr("class",function($){for(let[V,X]of d.entries())if($.type===X)return"section section"+V%i.numberSectionStyles;return"section section0"}).enter();let B=g.append("g").selectAll("rect").data(L).enter(),F=n.db.getLinks();if(B.append("rect").attr("id",function($){return $.id}).attr("rx",3).attr("ry",3).attr("x",function($){return $.milestone?y($.startTime)+C+.5*(y($.endTime)-y($.startTime))-.5*_:y($.startTime)+C}).attr("y",function($,V){return V=$.order,$.vert?i.gridLineStartPadding:V*I+N}).attr("width",function($){return $.milestone?_:$.vert?.08*_:y($.renderEndTime||$.endTime)-y($.startTime)}).attr("height",function($){return $.vert?f.length*(i.barHeight+i.barGap)+i.barHeight*2:_}).attr("transform-origin",function($,V){return V=$.order,(y($.startTime)+C+.5*(y($.endTime)-y($.startTime))).toString()+"px "+(V*I+N+.5*_).toString()+"px"}).attr("class",function($){let V="task",X="";$.classes.length>0&&(X=$.classes.join(" "));let Q=0;for(let[ie,Y]of d.entries())$.type===Y&&(Q=ie%i.numberSectionStyles);let H="";return $.active?$.crit?H+=" activeCrit":H=" active":$.done?$.crit?H=" doneCrit":H=" done":$.crit&&(H+=" crit"),H.length===0&&(H=" task"),$.milestone&&(H=" milestone "+H),$.vert&&(H=" vert "+H),H+=Q,H+=" "+X,V+H}),B.append("text").attr("id",function($){return $.id+"-text"}).text(function($){return $.task}).attr("font-size",i.fontSize).attr("x",function($){let V=y($.startTime),X=y($.renderEndTime||$.endTime);if($.milestone&&(V+=.5*(y($.endTime)-y($.startTime))-.5*_,X=V+_),$.vert)return y($.startTime)+C;let Q=this.getBBox().width;return Q>X-V?X+Q+1.5*i.leftPadding>M?V+C-5:X+C+5:(X-V)/2+V+C}).attr("y",function($,V){return $.vert?i.gridLineStartPadding+f.length*(i.barHeight+i.barGap)+60:(V=$.order,V*I+i.barHeight/2+(i.fontSize/2-2)+N)}).attr("text-height",_).attr("class",function($){let V=y($.startTime),X=y($.endTime);$.milestone&&(X=V+_);let Q=this.getBBox().width,H="";$.classes.length>0&&(H=$.classes.join(" "));let ie=0;for(let[le,ee]of d.entries())$.type===ee&&(ie=le%i.numberSectionStyles);let Y="";return $.active&&($.crit?Y="activeCritText"+ie:Y="activeText"+ie),$.done?$.crit?Y=Y+" doneCritText"+ie:Y=Y+" doneText"+ie:$.crit&&(Y=Y+" critText"+ie),$.milestone&&(Y+=" milestoneText"),$.vert&&(Y+=" vertText"),Q>X-V?X+Q+1.5*i.leftPadding>M?H+" taskTextOutsideLeft taskTextOutside"+ie+" "+Y:H+" taskTextOutsideRight taskTextOutside"+ie+" "+Y+" width-"+Q:H+" taskText taskText"+ie+" "+Y+" width-"+Q}),ve().securityLevel==="sandbox"){let $;$=je("#i"+e);let V=$.nodes()[0].contentDocument;B.filter(function(X){return F.has(X.id)}).each(function(X){var Q=V.querySelector("#"+X.id),H=V.querySelector("#"+X.id+"-text");let ie=Q.parentNode;var Y=V.createElement("a");Y.setAttribute("xlink:href",F.get(X.id)),Y.setAttribute("target","_top"),ie.appendChild(Y),Y.appendChild(Q),Y.appendChild(H)})}}o(b,"drawRects");function T(L,I,N,C,_,D,M,R){if(M.length===0&&R.length===0)return;let P,B;for(let{startTime:Q,endTime:H}of D)(P===void 0||QB)&&(B=H);if(!P||!B)return;if((0,Mv.default)(B).diff((0,Mv.default)(P),"year")>5){K.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),G=[],$=null,V=(0,Mv.default)(P);for(;V.valueOf()<=B;)n.db.isInvalidDate(V,F,M,R)?$?$.end=V:$={start:V,end:V}:$&&(G.push($),$=null),V=V.add(1,"d");g.append("g").selectAll("rect").data(G).enter().append("rect").attr("id",Q=>"exclude-"+Q.start.format("YYYY-MM-DD")).attr("x",Q=>y(Q.start.startOf("day"))+N).attr("y",i.gridLineStartPadding).attr("width",Q=>y(Q.end.endOf("day"))-y(Q.start.startOf("day"))).attr("height",_-I-i.gridLineStartPadding).attr("transform-origin",function(Q,H){return(y(Q.start)+N+.5*(y(Q.end)-y(Q.start))).toString()+"px "+(H*L+.5*_).toString()+"px"}).attr("class","exclude-range")}o(T,"drawExcludeDays");function E(L,I,N,C){if(N<=0||L>I)return 1/0;let _=I-L,D=Mv.default.duration({[C??"day"]:N}).asMilliseconds();return D<=0?1/0:Math.ceil(_/D)}o(E,"getEstimatedTickCount");function w(L,I,N,C){let _=n.db.getDateFormat(),D=n.db.getAxisFormat(),M;D?M=D:_==="D"?M="%d":M=i.axisFormat??"%Y-%m-%d";let R=GD(y).tickSize(-C+I+i.gridLineStartPadding).tickFormat(r0(M)),B=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(B!==null){let F=parseInt(B[1],10);if(isNaN(F)||F<=0)K.warn(`Invalid tick interval value: "${B[1]}". Skipping custom tick interval.`);else{let G=B[2],$=n.db.getWeekday()||i.weekday,V=y.domain(),X=V[0],Q=V[1],H=E(X,Q,F,G);if(H>Pq)K.warn(`The tick interval "${F}${G}" would generate ${H} ticks, which exceeds the maximum allowed (${Pq}). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(G){case"millisecond":R.ticks(ru.every(F));break;case"second":R.ticks($o.every(F));break;case"minute":R.ticks(yh.every(F));break;case"hour":R.ticks(vh.every(F));break;case"day":R.ticks(gl.every(F));break;case"week":R.ticks(e3e[$].every(F));break;case"month":R.ticks(xh.every(F));break}}}if(g.append("g").attr("class","grid").attr("transform","translate("+L+", "+(C-50)+")").call(R).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let F=zD(y).tickSize(-C+I+i.gridLineStartPadding).tickFormat(r0(M));if(B!==null){let G=parseInt(B[1],10);if(isNaN(G)||G<=0)K.warn(`Invalid tick interval value: "${B[1]}". Skipping custom tick interval.`);else{let $=B[2],V=n.db.getWeekday()||i.weekday,X=y.domain(),Q=X[0],H=X[1];if(E(Q,H,G,$)<=Pq)switch($){case"millisecond":F.ticks(ru.every(G));break;case"second":F.ticks($o.every(G));break;case"minute":F.ticks(yh.every(G));break;case"hour":F.ticks(vh.every(G));break;case"day":F.ticks(gl.every(G));break;case"week":F.ticks(e3e[V].every(G));break;case"month":F.ticks(xh.every(G));break}}}g.append("g").attr("class","grid").attr("transform","translate("+L+", "+I+")").call(F).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(w,"makeGrid");function k(L,I){let N=0,C=Object.keys(p).map(_=>[_,p[_]]);g.append("g").selectAll("text").data(C).enter().append(function(_){let D=_[0].split(st.lineBreakRegex),M=-(D.length-1)/2,R=u.createElementNS("http://www.w3.org/2000/svg","text");R.setAttribute("dy",M+"em");for(let[P,B]of D.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),P>0&&F.setAttribute("dy","1em"),F.textContent=B,R.appendChild(F)}return R}).attr("x",10).attr("y",function(_,D){if(D>0)for(let M=0;M{"use strict";xot=o(t=>` + .mermaid-main-font { + font-family: ${t.fontFamily}; + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: ${t.fontFamily}; + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: ${t.fontFamily}; + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: ${t.fontFamily}; + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + /* Done task text displayed outside the bar sits against the diagram background, + not against the done-task bar, so it must use the outside/contrast color. */ + .doneText0.taskTextOutsideLeft, + .doneText0.taskTextOutsideRight, + .doneText1.taskTextOutsideLeft, + .doneText1.taskTextOutsideRight, + .doneText2.taskTextOutsideLeft, + .doneText2.taskTextOutsideRight, + .doneText3.taskTextOutsideLeft, + .doneText3.taskTextOutsideRight { + fill: ${t.taskTextOutsideColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + /* Done-crit task text outside the bar \u2014 same reasoning as doneText above. */ + .doneCritText0.taskTextOutsideLeft, + .doneCritText0.taskTextOutsideRight, + .doneCritText1.taskTextOutsideLeft, + .doneCritText1.taskTextOutsideRight, + .doneCritText2.taskTextOutsideLeft, + .doneCritText2.taskTextOutsideRight, + .doneCritText3.taskTextOutsideLeft, + .doneCritText3.taskTextOutsideRight { + fill: ${t.taskTextOutsideColor} !important; + } + + .vert { + stroke: ${t.vertLineColor}; + } + + .vertText { + font-size: 15px; + text-anchor: middle; + fill: ${t.vertLineColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: ${t.fontFamily}; + } +`,"getStyles"),i3e=xot});var s3e={};vr(s3e,{diagram:()=>bot});var bot,o3e=O(()=>{"use strict";N4e();Z4e();n3e();a3e();bot={parser:L4e,db:K4e,renderer:r3e,styles:i3e}});var u3e,h3e=O(()=>{"use strict";up();xt();u3e={parse:o(async t=>{let e=await Us("info",t);K.debug(e)},"parse")}});var Eot,Sot,f3e,d3e=O(()=>{"use strict";Eot={version:"11.13.0"},Sot=o(()=>Eot.version,"getVersion"),f3e={getVersion:Sot}});var Ii,Ul=O(()=>{"use strict";Ar();jt();Ii=o(t=>{let{securityLevel:e}=ve(),r=je("body");if(e==="sandbox"){let a=je(`#i${t}`).node()?.contentDocument??document;r=je(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var Cot,p3e,m3e=O(()=>{"use strict";xt();Ul();Ti();Cot=o((t,e,r)=>{K.debug(`rendering info diagram +`+t);let n=Ii(e);Zr(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),p3e={draw:Cot}});var g3e={};vr(g3e,{diagram:()=>Aot});var Aot,y3e=O(()=>{"use strict";h3e();d3e();m3e();Aot={parser:u3e,db:f3e,renderer:p3e}});var b3e,Bq,_7,Fq,Rot,Lot,Not,Mot,Iot,Oot,Pot,D7,$q=O(()=>{"use strict";xt();si();La();b3e=gr.pie,Bq={sections:new Map,showData:!1,config:b3e},_7=Bq.sections,Fq=Bq.showData,Rot=structuredClone(b3e),Lot=o(()=>structuredClone(Rot),"getConfig"),Not=o(()=>{_7=new Map,Fq=Bq.showData,_r()},"clear"),Mot=o(({label:t,value:e})=>{if(e<0)throw new Error(`"${t}" has invalid value: ${e}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);_7.has(t)||(_7.set(t,e),K.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),Iot=o(()=>_7,"getSections"),Oot=o(t=>{Fq=t},"setShowData"),Pot=o(()=>Fq,"getShowData"),D7={getConfig:Lot,clear:Not,setDiagramTitle:zr,getDiagramTitle:Fr,setAccTitle:Lr,getAccTitle:Or,setAccDescription:Pr,getAccDescription:Br,addSection:Mot,getSections:Iot,setShowData:Oot,getShowData:Pot}});var Bot,T3e,w3e=O(()=>{"use strict";up();xt();Vm();$q();Bot=o((t,e)=>{ql(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),T3e={parse:o(async t=>{let e=await Us("pie",t);K.debug(e),Bot(e,D7)},"parse")}});var Fot,k3e,E3e=O(()=>{"use strict";Fot=o(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),k3e=Fot});var $ot,zot,S3e,C3e=O(()=>{"use strict";Ar();jt();xt();Ul();Ti();ar();$ot=o(t=>{let e=[...t.values()].reduce((i,a)=>i+a,0),r=[...t.entries()].map(([i,a])=>({label:i,value:a})).filter(i=>i.value/e*100>=1).sort((i,a)=>a.value-i.value);return W5().value(i=>i.value)(r)},"createPieArcs"),zot=o((t,e,r,n)=>{K.debug(`rendering pie chart +`+t);let i=n.db,a=ve(),s=Pn(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=Ii(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=Uo(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=uc().innerRadius(0).outerRadius(x),T=uc().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let E=i.getSections(),w=$ot(E),k=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],S=0;E.forEach(D=>{S+=D});let A=w.filter(D=>(D.data.value/S*100).toFixed(0)!=="0"),L=Fo(k);m.selectAll("mySlices").data(A).enter().append("path").attr("d",b).attr("fill",D=>L(D.data.label)).attr("class","pieCircle"),m.selectAll("mySlices").data(A).enter().append("text").text(D=>(D.data.value/S*100).toFixed(0)+"%").attr("transform",D=>"translate("+T.centroid(D)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let I=[...E.entries()].map(([D,M])=>({label:D,value:M})),N=m.selectAll(".legend").data(I).enter().append("g").attr("class","legend").attr("transform",(D,M)=>{let R=u+h,P=R*I.length/2,B=12*u,F=M*R-P;return"translate("+B+","+F+")"});N.append("rect").attr("width",u).attr("height",u).style("fill",D=>L(D.label)).style("stroke",D=>L(D.label)),N.append("text").attr("x",u+h).attr("y",u-h).text(D=>i.getShowData()?`${D.label} [${D.value}]`:D.label);let C=Math.max(...N.selectAll("text").nodes().map(D=>D?.getBoundingClientRect().width??0)),_=d+l+u+h+C;p.attr("viewBox",`0 0 ${_} ${f}`),Zr(p,f,_,s.useMaxWidth)},"draw"),S3e={draw:zot}});var A3e={};vr(A3e,{diagram:()=>Got});var Got,_3e=O(()=>{"use strict";w3e();$q();E3e();C3e();Got={parser:T3e,db:D7,renderer:S3e,styles:k3e}});var zq,R3e,L3e=O(()=>{"use strict";zq=(function(){var t=o(function(ce,z,ne,se){for(ne=ne||{},se=ce.length;se--;ne[ce[se]]=z);return ne},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],T=[1,19],E=[1,20],w=[1,21],k=[1,22],S=[1,24],A=[1,25],L=[1,26],I=[1,27],N=[1,28],C=[1,29],_=[1,32],D=[1,33],M=[1,34],R=[1,39],P=[1,40],B=[1,42],F=[1,44],G=[1,62],$=[1,61],V=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],X=[1,65],Q=[1,66],H=[1,67],ie=[1,68],Y=[1,69],le=[1,70],ee=[1,71],J=[1,72],te=[1,73],Z=[1,74],xe=[1,75],de=[1,76],Se=[4,5,6,7,8,9,10,11,12,13,14,15,18],Me=[1,90],ke=[1,91],we=[1,92],_e=[1,99],$e=[1,93],fe=[1,96],Ke=[1,94],Te=[1,95],Be=[1,97],Ue=[1,98],Ge=[1,102],Ne=[10,55,56,57],We=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],j={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(z,ne,se,be,pe,me,Re){var ge=me.length-1;switch(pe){case 23:this.$=me[ge];break;case 24:this.$=me[ge-1]+""+me[ge];break;case 26:this.$=me[ge-1]+me[ge];break;case 27:this.$=[me[ge].trim()];break;case 28:me[ge-2].push(me[ge].trim()),this.$=me[ge-2];break;case 29:this.$=me[ge-4],be.addClass(me[ge-2],me[ge]);break;case 37:this.$=[];break;case 42:this.$=me[ge].trim(),be.setDiagramTitle(this.$);break;case 43:this.$=me[ge].trim(),be.setAccTitle(this.$);break;case 44:case 45:this.$=me[ge].trim(),be.setAccDescription(this.$);break;case 46:be.addSection(me[ge].substr(8)),this.$=me[ge].substr(8);break;case 47:be.addPoint(me[ge-3],"",me[ge-1],me[ge],[]);break;case 48:be.addPoint(me[ge-4],me[ge-3],me[ge-1],me[ge],[]);break;case 49:be.addPoint(me[ge-4],"",me[ge-2],me[ge-1],me[ge]);break;case 50:be.addPoint(me[ge-5],me[ge-4],me[ge-2],me[ge-1],me[ge]);break;case 51:be.setXAxisLeftText(me[ge-2]),be.setXAxisRightText(me[ge]);break;case 52:me[ge-1].text+=" \u27F6 ",be.setXAxisLeftText(me[ge-1]);break;case 53:be.setXAxisLeftText(me[ge]);break;case 54:be.setYAxisBottomText(me[ge-2]),be.setYAxisTopText(me[ge]);break;case 55:me[ge-1].text+=" \u27F6 ",be.setYAxisBottomText(me[ge-1]);break;case 56:be.setYAxisBottomText(me[ge]);break;case 57:be.setQuadrant1Text(me[ge]);break;case 58:be.setQuadrant2Text(me[ge]);break;case 59:be.setQuadrant3Text(me[ge]);break;case 60:be.setQuadrant4Text(me[ge]);break;case 64:this.$={text:me[ge],type:"text"};break;case 65:this.$={text:me[ge-1].text+""+me[ge],type:me[ge-1].type};break;case 66:this.$={text:me[ge],type:"text"};break;case 67:this.$={text:me[ge],type:"markdown"};break;case 68:this.$=me[ge];break;case 69:this.$=me[ge-1]+""+me[ge];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:T,39:E,41:w,42:k,48:S,50:A,51:L,52:I,53:N,54:C,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:T,39:E,41:w,42:k,48:S,50:A,51:L,52:I,53:N,54:C,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,44:[1,57],47:[1,58],58:60,59:59,63:M,64:R,65:P,66:B,67:F},t(V,[2,64]),t(V,[2,66]),t(V,[2,67]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),t(V,[2,77]),t(V,[2,78]),t(V,[2,79]),t(V,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:X,5:Q,6:H,7:ie,8:Y,9:le,10:ee,11:J,12:te,13:Z,14:xe,15:de,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,49:[1,77],63:M,64:R,65:P,66:B,67:F}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,49:[1,78],63:M,64:R,65:P,66:B,67:F}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),{45:[1,79]},{44:[1,80]},t(V,[2,65]),t(V,[2,81]),t(V,[2,82]),t(V,[2,83]),{3:82,4:X,5:Q,6:H,7:ie,8:Y,9:le,10:ee,11:J,12:te,13:Z,14:xe,15:de,18:[1,81]},t(Se,[2,23]),t(Se,[2,1]),t(Se,[2,2]),t(Se,[2,3]),t(Se,[2,4]),t(Se,[2,5]),t(Se,[2,6]),t(Se,[2,7]),t(Se,[2,8]),t(Se,[2,9]),t(Se,[2,10]),t(Se,[2,11]),t(Se,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),{46:[1,85]},{45:[1,86]},{4:Me,5:ke,6:we,8:_e,11:$e,13:fe,16:89,17:Ke,18:Te,19:Be,20:Ue,22:88,23:87},t(Se,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,47],{22:88,16:89,23:100,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue}),{46:[1,101]},t(u,[2,29],{10:Ge}),t(Ne,[2,27],{16:103,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue}),t(We,[2,25]),t(We,[2,13]),t(We,[2,14]),t(We,[2,15]),t(We,[2,16]),t(We,[2,17]),t(We,[2,18]),t(We,[2,19]),t(We,[2,20]),t(We,[2,21]),t(We,[2,22]),t(u,[2,49],{10:Ge}),t(u,[2,48],{22:88,16:89,23:104,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue}),{4:Me,5:ke,6:we,8:_e,11:$e,13:fe,16:89,17:Ke,18:Te,19:Be,20:Ue,22:105},t(We,[2,26]),t(u,[2,50],{10:Ge}),t(Ne,[2,28],{16:103,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(z,ne){if(ne.recoverable)this.trace(z);else{var se=new Error(z);throw se.hash=ne,se}},"parseError"),parse:o(function(z){var ne=this,se=[0],be=[],pe=[null],me=[],Re=this.table,ge="",Ie=0,qe=0,Pe=0,Xe=2,oe=1,et=me.slice.call(arguments,1),he=Object.create(this.lexer),ot={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(ot.yy[Dt]=this.yy[Dt]);he.setInput(z,ot.yy),ot.yy.lexer=he,ot.yy.parser=this,typeof he.yylloc>"u"&&(he.yylloc={});var It=he.yylloc;me.push(It);var wt=he.options&&he.options.ranges;typeof ot.yy.parseError=="function"?this.parseError=ot.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Rt(mt){se.length=se.length-2*mt,pe.length=pe.length-mt,me.length=me.length-mt}o(Rt,"popStack");function it(){var mt;return mt=be.pop()||he.lex()||oe,typeof mt!="number"&&(mt instanceof Array&&(be=mt,mt=be.pop()),mt=ne.symbols_[mt]||mt),mt}o(it,"lex");for(var at,Ct,yt,dt,Ht,cr,Kt={},kr,ur,tr,hr;;){if(yt=se[se.length-1],this.defaultActions[yt]?dt=this.defaultActions[yt]:((at===null||typeof at>"u")&&(at=it()),dt=Re[yt]&&Re[yt][at]),typeof dt>"u"||!dt.length||!dt[0]){var _n="";hr=[];for(kr in Re[yt])this.terminals_[kr]&&kr>Xe&&hr.push("'"+this.terminals_[kr]+"'");he.showPosition?_n="Parse error on line "+(Ie+1)+`: +`+he.showPosition()+` +Expecting `+hr.join(", ")+", got '"+(this.terminals_[at]||at)+"'":_n="Parse error on line "+(Ie+1)+": Unexpected "+(at==oe?"end of input":"'"+(this.terminals_[at]||at)+"'"),this.parseError(_n,{text:he.match,token:this.terminals_[at]||at,line:he.yylineno,loc:It,expected:hr})}if(dt[0]instanceof Array&&dt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+at);switch(dt[0]){case 1:se.push(at),pe.push(he.yytext),me.push(he.yylloc),se.push(dt[1]),at=null,Ct?(at=Ct,Ct=null):(qe=he.yyleng,ge=he.yytext,Ie=he.yylineno,It=he.yylloc,Pe>0&&Pe--);break;case 2:if(ur=this.productions_[dt[1]][1],Kt.$=pe[pe.length-ur],Kt._$={first_line:me[me.length-(ur||1)].first_line,last_line:me[me.length-1].last_line,first_column:me[me.length-(ur||1)].first_column,last_column:me[me.length-1].last_column},wt&&(Kt._$.range=[me[me.length-(ur||1)].range[0],me[me.length-1].range[1]]),cr=this.performAction.apply(Kt,[ge,qe,Ie,ot.yy,dt[1],pe,me].concat(et)),typeof cr<"u")return cr;ur&&(se=se.slice(0,-1*ur*2),pe=pe.slice(0,-1*ur),me=me.slice(0,-1*ur)),se.push(this.productions_[dt[1]][0]),pe.push(Kt.$),me.push(Kt._$),tr=Re[se[se.length-2]][se[se.length-1]],se.push(tr);break;case 3:return!0}}return!0},"parse")},ae=(function(){var ce={EOF:1,parseError:o(function(ne,se){if(this.yy.parser)this.yy.parser.parseError(ne,se);else throw new Error(ne)},"parseError"),setInput:o(function(z,ne){return this.yy=ne||this.yy||{},this._input=z,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var z=this._input[0];this.yytext+=z,this.yyleng++,this.offset++,this.match+=z,this.matched+=z;var ne=z.match(/(?:\r\n?|\n).*/g);return ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),z},"input"),unput:o(function(z){var ne=z.length,se=z.split(/(?:\r\n?|\n)/g);this._input=z+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ne),this.offset-=ne;var be=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),se.length-1&&(this.yylineno-=se.length-1);var pe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:se?(se.length===be.length?this.yylloc.first_column:0)+be[be.length-se.length].length-se[0].length:this.yylloc.first_column-ne},this.options.ranges&&(this.yylloc.range=[pe[0],pe[0]+this.yyleng-ne]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(z){this.unput(this.match.slice(z))},"less"),pastInput:o(function(){var z=this.matched.substr(0,this.matched.length-this.match.length);return(z.length>20?"...":"")+z.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var z=this.match;return z.length<20&&(z+=this._input.substr(0,20-z.length)),(z.substr(0,20)+(z.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var z=this.pastInput(),ne=new Array(z.length+1).join("-");return z+this.upcomingInput()+` +`+ne+"^"},"showPosition"),test_match:o(function(z,ne){var se,be,pe;if(this.options.backtrack_lexer&&(pe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(pe.yylloc.range=this.yylloc.range.slice(0))),be=z[0].match(/(?:\r\n?|\n).*/g),be&&(this.yylineno+=be.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:be?be[be.length-1].length-be[be.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+z[0].length},this.yytext+=z[0],this.match+=z[0],this.matches=z,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(z[0].length),this.matched+=z[0],se=this.performAction.call(this,this.yy,this,ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),se)return se;if(this._backtrack){for(var me in pe)this[me]=pe[me];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var z,ne,se,be;this._more||(this.yytext="",this.match="");for(var pe=this._currentRules(),me=0;mene[0].length)){if(ne=se,be=me,this.options.backtrack_lexer){if(z=this.test_match(se,pe[me]),z!==!1)return z;if(this._backtrack){ne=!1;continue}else return!1}else if(!this.options.flex)break}return ne?(z=this.test_match(ne,pe[be]),z!==!1?z:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ne=this.next();return ne||this.lex()},"lex"),begin:o(function(ne){this.conditionStack.push(ne)},"begin"),popState:o(function(){var ne=this.conditionStack.length-1;return ne>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ne){return ne=this.conditionStack.length-1-Math.abs(ne||0),ne>=0?this.conditionStack[ne]:"INITIAL"},"topState"),pushState:o(function(ne){this.begin(ne)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ne,se,be,pe){var me=pe;switch(be){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return ce})();j.lexer=ae;function U(){this.yy={}}return o(U,"Parser"),U.prototype=j,j.Parser=U,new U})();zq.parser=zq;R3e=zq});var Ws,R7,N3e=O(()=>{"use strict";Ar();La();xt();y2();Ws=yf(),R7=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:gr.quadrantChart?.chartWidth||500,chartWidth:gr.quadrantChart?.chartHeight||500,titlePadding:gr.quadrantChart?.titlePadding||10,titleFontSize:gr.quadrantChart?.titleFontSize||20,quadrantPadding:gr.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:gr.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:gr.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:gr.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:gr.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:gr.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:gr.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:gr.quadrantChart?.pointTextPadding||5,pointLabelFontSize:gr.quadrantChart?.pointLabelFontSize||12,pointRadius:gr.quadrantChart?.pointRadius||5,xAxisPosition:gr.quadrantChart?.xAxisPosition||"top",yAxisPosition:gr.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:gr.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:gr.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:Ws.quadrant1Fill,quadrant2Fill:Ws.quadrant2Fill,quadrant3Fill:Ws.quadrant3Fill,quadrant4Fill:Ws.quadrant4Fill,quadrant1TextFill:Ws.quadrant1TextFill,quadrant2TextFill:Ws.quadrant2TextFill,quadrant3TextFill:Ws.quadrant3TextFill,quadrant4TextFill:Ws.quadrant4TextFill,quadrantPointFill:Ws.quadrantPointFill,quadrantPointTextFill:Ws.quadrantPointTextFill,quadrantXAxisTextFill:Ws.quadrantXAxisTextFill,quadrantYAxisTextFill:Ws.quadrantYAxisTextFill,quadrantTitleFill:Ws.quadrantTitleFill,quadrantInternalBorderStrokeFill:Ws.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:Ws.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,K.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){K.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){K.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=sc().domain([0,1]).range([i,s+i]),u=sc().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function Gq(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function M3e(t){return!/^\d+$/.test(t)}function I3e(t){return!/^\d+px$/.test(t)}var Hm,O3e=O(()=>{"use strict";Hm=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(Gq,"validateHexCode");o(M3e,"validateNumber");o(I3e,"validateSizeInPixels")});function of(t){return wr(t.trim(),Uot)}function Wot(t){Ka.setData({quadrant1Text:of(t.text)})}function Hot(t){Ka.setData({quadrant2Text:of(t.text)})}function Yot(t){Ka.setData({quadrant3Text:of(t.text)})}function jot(t){Ka.setData({quadrant4Text:of(t.text)})}function Xot(t){Ka.setData({xAxisLeftText:of(t.text)})}function Kot(t){Ka.setData({xAxisRightText:of(t.text)})}function Qot(t){Ka.setData({yAxisTopText:of(t.text)})}function Zot(t){Ka.setData({yAxisBottomText:of(t.text)})}function Vq(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if(M3e(i))throw new Hm(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(Gq(i))throw new Hm(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(Gq(i))throw new Hm(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(I3e(i))throw new Hm(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function Jot(t,e,r,n,i){let a=Vq(i);Ka.addPoints([{x:r,y:n,text:of(t.text),className:e,...a}])}function elt(t,e){Ka.addClass(t,Vq(e))}function tlt(t){Ka.setConfig({chartWidth:t})}function rlt(t){Ka.setConfig({chartHeight:t})}function nlt(){let t=ve(),{themeVariables:e,quadrantChart:r}=t;return r&&Ka.setConfig(r),Ka.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),Ka.setData({titleText:Fr()}),Ka.build()}var Uot,Ka,ilt,P3e,B3e=O(()=>{"use strict";jt();Ur();si();N3e();O3e();Uot=ve();o(of,"textSanitizer");Ka=new R7;o(Wot,"setQuadrant1Text");o(Hot,"setQuadrant2Text");o(Yot,"setQuadrant3Text");o(jot,"setQuadrant4Text");o(Xot,"setXAxisLeftText");o(Kot,"setXAxisRightText");o(Qot,"setYAxisTopText");o(Zot,"setYAxisBottomText");o(Vq,"parseStyles");o(Jot,"addPoint");o(elt,"addClass");o(tlt,"setWidth");o(rlt,"setHeight");o(nlt,"getQuadrantData");ilt=o(function(){Ka.clear(),_r()},"clear"),P3e={setWidth:tlt,setHeight:rlt,setQuadrant1Text:Wot,setQuadrant2Text:Hot,setQuadrant3Text:Yot,setQuadrant4Text:jot,setXAxisLeftText:Xot,setXAxisRightText:Kot,setYAxisTopText:Qot,setYAxisBottomText:Zot,parseStyles:Vq,addPoint:Jot,addClass:elt,getQuadrantData:nlt,clear:ilt,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr}});var alt,F3e,$3e=O(()=>{"use strict";Ar();jt();xt();Ti();alt=o((t,e,r,n)=>{function i(A){return A==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(A){return A==="left"?"start":"middle"}o(a,"getTextAnchor");function s(A){return`translate(${A.x}, ${A.y}) rotate(${A.rotation||0})`}o(s,"getTransformation");let l=ve();K.debug(`Rendering quadrant chart +`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=je("#i"+e));let d=(u==="sandbox"?je(h.nodes()[0].contentDocument.body):je("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Zr(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),T=p.append("g").attr("class","labels"),E=p.append("g").attr("class","title");y.title&&E.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",A=>A.x1).attr("y1",A=>A.y1).attr("x2",A=>A.x2).attr("y2",A=>A.y2).style("stroke",A=>A.strokeFill).style("stroke-width",A=>A.strokeWidth);let w=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");w.append("rect").attr("x",A=>A.x).attr("y",A=>A.y).attr("width",A=>A.width).attr("height",A=>A.height).attr("fill",A=>A.fill),w.append("text").attr("x",0).attr("y",0).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text)).text(A=>A.text.text),T.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(A=>A.text).attr("fill",A=>A.fill).attr("font-size",A=>A.fontSize).attr("dominant-baseline",A=>i(A.horizontalPos)).attr("text-anchor",A=>a(A.verticalPos)).attr("transform",A=>s(A));let S=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");S.append("circle").attr("cx",A=>A.x).attr("cy",A=>A.y).attr("r",A=>A.radius).attr("fill",A=>A.fill).attr("stroke",A=>A.strokeColor).attr("stroke-width",A=>A.strokeWidth),S.append("text").attr("x",0).attr("y",0).text(A=>A.text.text).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text))},"draw"),F3e={draw:alt}});var z3e={};vr(z3e,{diagram:()=>slt});var slt,G3e=O(()=>{"use strict";L3e();B3e();$3e();slt={parser:R3e,db:P3e,renderer:F3e,styles:o(()=>"","styles")}});var qq,U3e,W3e=O(()=>{"use strict";qq=(function(){var t=o(function(M,R,P,B){for(P=P||{},B=M.length;B--;P[M[B]]=R);return P},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],T=[1,37],E=[1,43],w=[1,42],k=[1,47],S=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],I=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],N=[1,64],C={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(R,P,B,F,G,$,V){var X=$.length-1;switch(G){case 5:F.setOrientation($[X]);break;case 9:F.setDiagramTitle($[X].text.trim());break;case 12:F.setLineData({text:"",type:"text"},$[X]);break;case 13:F.setLineData($[X-1],$[X]);break;case 14:F.setBarData({text:"",type:"text"},$[X]);break;case 15:F.setBarData($[X-1],$[X]);break;case 16:this.$=$[X].trim(),F.setAccTitle(this.$);break;case 17:case 18:this.$=$[X].trim(),F.setAccDescription(this.$);break;case 19:this.$=$[X-1];break;case 20:this.$=[Number($[X-2]),...$[X]];break;case 21:this.$=[Number($[X])];break;case 22:F.setXAxisTitle($[X]);break;case 23:F.setXAxisTitle($[X-1]);break;case 24:F.setXAxisTitle({type:"text",text:""});break;case 25:F.setXAxisBand($[X]);break;case 26:F.setXAxisRangeData(Number($[X-2]),Number($[X]));break;case 27:this.$=$[X-1];break;case 28:this.$=[$[X-2],...$[X]];break;case 29:this.$=[$[X]];break;case 30:F.setYAxisTitle($[X]);break;case 31:F.setYAxisTitle($[X-1]);break;case 32:F.setYAxisTitle({type:"text",text:""});break;case 33:F.setYAxisRangeData(Number($[X-2]),Number($[X]));break;case 37:this.$={text:$[X],type:"text"};break;case 38:this.$={text:$[X],type:"text"};break;case 39:this.$={text:$[X],type:"markdown"};break;case 40:this.$=$[X];break;case 41:this.$=$[X-1]+""+$[X];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:39,13:38,24:E,27:w,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:45,15:44,27:k,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:49,17:48,24:S,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:52,17:51,24:S,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{20:[1,53]},{22:[1,54]},t(A,[2,18]),{1:[2,2]},t(A,[2,8]),t(A,[2,9]),t(L,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T}),t(L,[2,38]),t(L,[2,39]),t(I,[2,40]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),t(I,[2,47]),t(I,[2,48]),t(I,[2,49]),t(I,[2,50]),t(I,[2,51]),t(A,[2,10]),t(A,[2,22],{30:41,29:56,24:E,27:w}),t(A,[2,24]),t(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},t(A,[2,11]),t(A,[2,30],{33:60,27:k}),t(A,[2,32]),{31:[1,61]},t(A,[2,12]),{17:62,24:S},{25:63,27:N},t(A,[2,14]),{17:65,24:S},t(A,[2,16]),t(A,[2,17]),t(I,[2,41]),t(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(A,[2,31]),{27:[1,69]},t(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(A,[2,15]),t(A,[2,26]),t(A,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},t(A,[2,33]),t(A,[2,19]),{25:73,27:N},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(R,P){if(P.recoverable)this.trace(R);else{var B=new Error(R);throw B.hash=P,B}},"parseError"),parse:o(function(R){var P=this,B=[0],F=[],G=[null],$=[],V=this.table,X="",Q=0,H=0,ie=0,Y=2,le=1,ee=$.slice.call(arguments,1),J=Object.create(this.lexer),te={yy:{}};for(var Z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z)&&(te.yy[Z]=this.yy[Z]);J.setInput(R,te.yy),te.yy.lexer=J,te.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var xe=J.yylloc;$.push(xe);var de=J.options&&J.options.ranges;typeof te.yy.parseError=="function"?this.parseError=te.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(j){B.length=B.length-2*j,G.length=G.length-j,$.length=$.length-j}o(Se,"popStack");function Me(){var j;return j=F.pop()||J.lex()||le,typeof j!="number"&&(j instanceof Array&&(F=j,j=F.pop()),j=P.symbols_[j]||j),j}o(Me,"lex");for(var ke,we,_e,$e,fe,Ke,Te={},Be,Ue,Ge,Ne;;){if(_e=B[B.length-1],this.defaultActions[_e]?$e=this.defaultActions[_e]:((ke===null||typeof ke>"u")&&(ke=Me()),$e=V[_e]&&V[_e][ke]),typeof $e>"u"||!$e.length||!$e[0]){var We="";Ne=[];for(Be in V[_e])this.terminals_[Be]&&Be>Y&&Ne.push("'"+this.terminals_[Be]+"'");J.showPosition?We="Parse error on line "+(Q+1)+`: +`+J.showPosition()+` +Expecting `+Ne.join(", ")+", got '"+(this.terminals_[ke]||ke)+"'":We="Parse error on line "+(Q+1)+": Unexpected "+(ke==le?"end of input":"'"+(this.terminals_[ke]||ke)+"'"),this.parseError(We,{text:J.match,token:this.terminals_[ke]||ke,line:J.yylineno,loc:xe,expected:Ne})}if($e[0]instanceof Array&&$e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_e+", token: "+ke);switch($e[0]){case 1:B.push(ke),G.push(J.yytext),$.push(J.yylloc),B.push($e[1]),ke=null,we?(ke=we,we=null):(H=J.yyleng,X=J.yytext,Q=J.yylineno,xe=J.yylloc,ie>0&&ie--);break;case 2:if(Ue=this.productions_[$e[1]][1],Te.$=G[G.length-Ue],Te._$={first_line:$[$.length-(Ue||1)].first_line,last_line:$[$.length-1].last_line,first_column:$[$.length-(Ue||1)].first_column,last_column:$[$.length-1].last_column},de&&(Te._$.range=[$[$.length-(Ue||1)].range[0],$[$.length-1].range[1]]),Ke=this.performAction.apply(Te,[X,H,Q,te.yy,$e[1],G,$].concat(ee)),typeof Ke<"u")return Ke;Ue&&(B=B.slice(0,-1*Ue*2),G=G.slice(0,-1*Ue),$=$.slice(0,-1*Ue)),B.push(this.productions_[$e[1]][0]),G.push(Te.$),$.push(Te._$),Ge=V[B[B.length-2]][B[B.length-1]],B.push(Ge);break;case 3:return!0}}return!0},"parse")},_=(function(){var M={EOF:1,parseError:o(function(P,B){if(this.yy.parser)this.yy.parser.parseError(P,B);else throw new Error(P)},"parseError"),setInput:o(function(R,P){return this.yy=P||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var P=R.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},"input"),unput:o(function(R){var P=R.length,B=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var F=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),B.length-1&&(this.yylineno-=B.length-1);var G=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:B?(B.length===F.length?this.yylloc.first_column:0)+F[F.length-B.length].length-B[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[G[0],G[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(R){this.unput(this.match.slice(R))},"less"),pastInput:o(function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var R=this.pastInput(),P=new Array(R.length+1).join("-");return R+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(R,P){var B,F,G;if(this.options.backtrack_lexer&&(G={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(G.yylloc.range=this.yylloc.range.slice(0))),F=R[0].match(/(?:\r\n?|\n).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],B=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),B)return B;if(this._backtrack){for(var $ in G)this[$]=G[$];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,P,B,F;this._more||(this.yytext="",this.match="");for(var G=this._currentRules(),$=0;$P[0].length)){if(P=B,F=$,this.options.backtrack_lexer){if(R=this.test_match(B,G[$]),R!==!1)return R;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(R=this.test_match(P,G[F]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,B,F,G){var $=G;switch(F){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 31;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 27;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 43;case 33:return"COLON";case 34:return 44;case 35:return 28;case 36:return 45;case 37:return 46;case 38:return 48;case 39:return 50;case 40:return 47;case 41:return 41;case 42:return 49;case 43:return 42;case 44:break;case 45:return 35;case 46:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return M})();C.lexer=_;function D(){this.yy={}}return o(D,"Parser"),D.prototype=C,C.Parser=D,new D})();qq.parser=qq;U3e=qq});function Uq(t){return t.type==="bar"}function L7(t){return t.type==="band"}function Iv(t){return t.type==="linear"}var N7=O(()=>{"use strict";o(Uq,"isBarPlot");o(L7,"isBandAxisData");o(Iv,"isLinearAxisData")});var Ov,Wq=O(()=>{"use strict";co();Ov=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=gie(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var Pv,Hq=O(()=>{"use strict";Pv=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var M7,H3e=O(()=>{"use strict";Ar();xt();Hq();M7=class extends Pv{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=Og().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=Og().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),K.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var I7,Y3e=O(()=>{"use strict";Ar();Hq();I7=class extends Pv{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=sc().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=sc().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function Yq(t,e,r,n){let i=new Ov(n);return L7(t)?new M7(e,r,t.categories,t.title,i):new I7(e,r,[t.min,t.max],t.title,i)}var j3e=O(()=>{"use strict";N7();Wq();H3e();Y3e();o(Yq,"getAxis")});function X3e(t,e,r,n){let i=new Ov(n);return new jq(i,t,e,r)}var jq,K3e=O(()=>{"use strict";Wq();jq=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}};o(X3e,"getChartTitleComponent")});var O7,Q3e=O(()=>{"use strict";Ar();O7=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=hc().y(n=>n[0]).x(n=>n[1])(e):r=hc().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var P7,Z3e=O(()=>{"use strict";P7=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function J3e(t,e,r){return new Xq(t,e,r)}var Xq,ewe=O(()=>{"use strict";Q3e();Z3e();Xq=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new O7(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new P7(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(J3e,"getPlotComponent")});var B7,twe=O(()=>{"use strict";j3e();K3e();ewe();N7();B7=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:X3e(e,r,n,i),plot:J3e(e,r,n),xAxis:Yq(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:Yq(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>Uq(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>Uq(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var F7,rwe=O(()=>{"use strict";twe();F7=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new B7(e,r,n,i).getDrawableElement()}}});function iwe(){let t=yf(),e=Zt();return Pn(t.xyChart,e.themeVariables.xyChart)}function awe(){let t=Zt();return Pn(gr.xyChart,t.xyChart)}function swe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function Zq(t){let e=Zt();return wr(t.trim(),e)}function ult(t){nwe=t}function hlt(t){t==="horizontal"?f3.chartOrientation="horizontal":f3.chartOrientation="vertical"}function flt(t){An.xAxis.title=Zq(t.text)}function owe(t,e){An.xAxis={type:"linear",title:An.xAxis.title,min:t,max:e},$7=!0}function dlt(t){An.xAxis={type:"band",title:An.xAxis.title,categories:t.map(e=>Zq(e.text))},$7=!0}function plt(t){An.yAxis.title=Zq(t.text)}function mlt(t,e){An.yAxis={type:"linear",title:An.yAxis.title,min:t,max:e},Qq=!0}function glt(t){let e=Math.min(...t),r=Math.max(...t),n=Iv(An.yAxis)?An.yAxis.min:1/0,i=Iv(An.yAxis)?An.yAxis.max:-1/0;An.yAxis={type:"linear",title:An.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function lwe(t){let e=[];if(t.length===0)return e;if(!$7){let r=Iv(An.xAxis)?An.xAxis.min:1/0,n=Iv(An.xAxis)?An.xAxis.max:-1/0;owe(Math.min(r,1),Math.max(n,t.length))}if(Qq||glt(t),L7(An.xAxis)&&(e=An.xAxis.categories.map((r,n)=>[r,t[n]])),Iv(An.xAxis)){let r=An.xAxis.min,n=An.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function cwe(t){return Kq[t===0?0:t%Kq.length]}function ylt(t,e){let r=lwe(e);An.plots.push({type:"line",strokeFill:cwe(h3),strokeWidth:2,data:r}),h3++}function vlt(t,e){let r=lwe(e);An.plots.push({type:"bar",fill:cwe(h3),data:r}),h3++}function xlt(){if(An.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return An.title=Fr(),F7.build(f3,An,d3,nwe)}function blt(){return d3}function Tlt(){return f3}function wlt(){return An}var h3,nwe,f3,d3,An,Kq,$7,Qq,klt,uwe,hwe=O(()=>{"use strict";$r();La();y2();ar();Ur();si();rwe();N7();h3=0,f3=awe(),d3=iwe(),An=swe(),Kq=d3.plotColorPalette.split(",").map(t=>t.trim()),$7=!1,Qq=!1;o(iwe,"getChartDefaultThemeConfig");o(awe,"getChartDefaultConfig");o(swe,"getChartDefaultData");o(Zq,"textSanitizer");o(ult,"setTmpSVGG");o(hlt,"setOrientation");o(flt,"setXAxisTitle");o(owe,"setXAxisRangeData");o(dlt,"setXAxisBand");o(plt,"setYAxisTitle");o(mlt,"setYAxisRangeData");o(glt,"setYAxisRangeFromPlotData");o(lwe,"transformDataWithoutCategory");o(cwe,"getPlotColorFromPalette");o(ylt,"setLineData");o(vlt,"setBarData");o(xlt,"getDrawableElem");o(blt,"getChartThemeConfig");o(Tlt,"getChartConfig");o(wlt,"getXYChartData");klt=o(function(){_r(),h3=0,f3=awe(),An=swe(),d3=iwe(),Kq=d3.plotColorPalette.split(",").map(t=>t.trim()),$7=!1,Qq=!1},"clear"),uwe={getDrawableElem:xlt,clear:klt,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr,setOrientation:hlt,setXAxisTitle:flt,setXAxisRangeData:owe,setXAxisBand:dlt,setYAxisTitle:plt,setYAxisRangeData:mlt,setLineData:ylt,setBarData:vlt,setTmpSVGG:ult,getChartThemeConfig:blt,getChartConfig:Tlt,getXYChartData:wlt}});var Elt,fwe,dwe=O(()=>{"use strict";xt();Ul();Ti();Elt=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig(),l=i.getXYChartData().plots[0].data.map(T=>T[1]);function u(T){return T==="top"?"text-before-edge":"middle"}o(u,"getDominantBaseLine");function h(T){return T==="left"?"start":T==="right"?"end":"middle"}o(h,"getTextAnchor");function f(T){return`translate(${T.x}, ${T.y}) rotate(${T.rotation||0})`}o(f,"getTextTransformation"),K.debug(`Rendering xychart chart +`+t);let d=Ii(e),p=d.append("g").attr("class","main"),m=p.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Zr(d,s.height,s.width,!0),d.attr("viewBox",`0 0 ${s.width} ${s.height}`),m.attr("fill",a.backgroundColor),i.setTmpSVGG(d.append("g").attr("class","mermaid-tmp-group"));let g=i.getDrawableElem(),y={};function v(T){let E=p,w="";for(let[k]of T.entries()){let S=p;k>0&&y[w]&&(S=y[w]),w+=T[k],E=y[w],E||(E=y[w]=S.append("g").attr("class",T[k]))}return E}o(v,"getGroup");for(let T of g){if(T.data.length===0)continue;let E=v(T.groupTexts);switch(T.type){case"rect":if(E.selectAll("rect").data(T.data).enter().append("rect").attr("x",w=>w.x).attr("y",w=>w.y).attr("width",w=>w.width).attr("height",w=>w.height).attr("fill",w=>w.fill).attr("stroke",w=>w.strokeFill).attr("stroke-width",w=>w.strokeWidth),s.showDataLabel)if(s.chartOrientation==="horizontal"){let S=function(I,N){let{data:C,label:_}=I;return N*_.length*.7<=C.width-10};var x=S;o(S,"fitsHorizontally");let w=.7,k=T.data.map((I,N)=>({data:I,label:l[N].toString()})).filter(I=>I.data.width>0&&I.data.height>0),A=k.map(I=>{let{data:N}=I,C=N.height*.7;for(;!S(I,C)&&C>0;)C-=1;return C}),L=Math.floor(Math.min(...A));E.selectAll("text").data(k).enter().append("text").attr("x",I=>I.data.x+I.data.width-10).attr("y",I=>I.data.y+I.data.height/2).attr("text-anchor","end").attr("dominant-baseline","middle").attr("fill","black").attr("font-size",`${L}px`).text(I=>I.label)}else{let S=function(I,N,C){let{data:_,label:D}=I,R=N*D.length*.7,P=_.x+_.width/2,B=P-R/2,F=P+R/2,G=B>=_.x&&F<=_.x+_.width,$=_.y+C+N<=_.y+_.height;return G&&$};var b=S;o(S,"fitsInBar");let w=10,k=T.data.map((I,N)=>({data:I,label:l[N].toString()})).filter(I=>I.data.width>0&&I.data.height>0),A=k.map(I=>{let{data:N,label:C}=I,_=N.width/(C.length*.7);for(;!S(I,_,10)&&_>0;)_-=1;return _}),L=Math.floor(Math.min(...A));E.selectAll("text").data(k).enter().append("text").attr("x",I=>I.data.x+I.data.width/2).attr("y",I=>I.data.y+10).attr("text-anchor","middle").attr("dominant-baseline","hanging").attr("fill","black").attr("font-size",`${L}px`).text(I=>I.label)}break;case"text":E.selectAll("text").data(T.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",w=>w.fill).attr("font-size",w=>w.fontSize).attr("dominant-baseline",w=>u(w.verticalPos)).attr("text-anchor",w=>h(w.horizontalPos)).attr("transform",w=>f(w)).text(w=>w.text);break;case"path":E.selectAll("path").data(T.data).enter().append("path").attr("d",w=>w.path).attr("fill",w=>w.fill?w.fill:"none").attr("stroke",w=>w.strokeFill).attr("stroke-width",w=>w.strokeWidth);break}}},"draw"),fwe={draw:Elt}});var pwe={};vr(pwe,{diagram:()=>Slt});var Slt,mwe=O(()=>{"use strict";W3e();hwe();dwe();Slt={parser:U3e,db:uwe,renderer:fwe}});var Jq,vwe,xwe=O(()=>{"use strict";Jq=(function(){var t=o(function(j,ae,U,ce){for(U=U||{},ce=j.length;ce--;U[j[ce]]=ae);return U},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],s=[1,22],l=[2,7],u=[1,26],h=[1,27],f=[1,28],d=[1,29],p=[1,33],m=[1,34],g=[1,35],y=[1,36],v=[1,37],x=[1,38],b=[1,24],T=[1,31],E=[1,32],w=[1,30],k=[1,39],S=[1,40],A=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],L=[1,61],I=[89,90],N=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],C=[27,29],_=[1,70],D=[1,71],M=[1,72],R=[1,73],P=[1,74],B=[1,75],F=[1,76],G=[1,83],$=[1,80],V=[1,84],X=[1,85],Q=[1,86],H=[1,87],ie=[1,88],Y=[1,89],le=[1,90],ee=[1,91],J=[1,92],te=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Z=[63,64],xe=[1,101],de=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],Se=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Me=[1,110],ke=[1,106],we=[1,107],_e=[1,108],$e=[1,109],fe=[1,111],Ke=[1,116],Te=[1,117],Be=[1,114],Ue=[1,115],Ge={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:o(function(ae,U,ce,z,ne,se,be){var pe=se.length-1;switch(ne){case 4:this.$=se[pe].trim(),z.setAccTitle(this.$);break;case 5:case 6:this.$=se[pe].trim(),z.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:z.setDirection("TB");break;case 18:z.setDirection("BT");break;case 19:z.setDirection("RL");break;case 20:z.setDirection("LR");break;case 21:z.addRequirement(se[pe-3],se[pe-4]);break;case 22:z.addRequirement(se[pe-5],se[pe-6]),z.setClass([se[pe-5]],se[pe-3]);break;case 23:z.setNewReqId(se[pe-2]);break;case 24:z.setNewReqText(se[pe-2]);break;case 25:z.setNewReqRisk(se[pe-2]);break;case 26:z.setNewReqVerifyMethod(se[pe-2]);break;case 29:this.$=z.RequirementType.REQUIREMENT;break;case 30:this.$=z.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=z.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=z.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=z.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=z.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=z.RiskLevel.LOW_RISK;break;case 36:this.$=z.RiskLevel.MED_RISK;break;case 37:this.$=z.RiskLevel.HIGH_RISK;break;case 38:this.$=z.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=z.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=z.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=z.VerifyType.VERIFY_TEST;break;case 42:z.addElement(se[pe-3]);break;case 43:z.addElement(se[pe-5]),z.setClass([se[pe-5]],se[pe-3]);break;case 44:z.setNewElementType(se[pe-2]);break;case 45:z.setNewElementDocRef(se[pe-2]);break;case 48:z.addRelationship(se[pe-2],se[pe],se[pe-4]);break;case 49:z.addRelationship(se[pe-2],se[pe-4],se[pe]);break;case 50:this.$=z.Relationships.CONTAINS;break;case 51:this.$=z.Relationships.COPIES;break;case 52:this.$=z.Relationships.DERIVES;break;case 53:this.$=z.Relationships.SATISFIES;break;case 54:this.$=z.Relationships.VERIFIES;break;case 55:this.$=z.Relationships.REFINES;break;case 56:this.$=z.Relationships.TRACES;break;case 57:this.$=se[pe-2],z.defineClass(se[pe-1],se[pe]);break;case 58:z.setClass(se[pe-1],se[pe]);break;case 59:z.setClass([se[pe-2]],se[pe]);break;case 60:case 62:this.$=[se[pe]];break;case 61:case 63:this.$=se[pe-2].concat([se[pe]]);break;case 64:this.$=se[pe-2],z.setCssStyle(se[pe-1],se[pe]);break;case 65:this.$=[se[pe]];break;case 66:se[pe-2].push(se[pe]),this.$=se[pe-2];break;case 68:this.$=se[pe-1]+se[pe];break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:s,7:42,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:43,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:44,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:45,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:46,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:47,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:48,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:49,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:50,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},t(A,[2,17]),t(A,[2,18]),t(A,[2,19]),t(A,[2,20]),{30:60,33:62,75:L,89:k,90:S},{30:63,33:62,75:L,89:k,90:S},{30:64,33:62,75:L,89:k,90:S},t(I,[2,29]),t(I,[2,30]),t(I,[2,31]),t(I,[2,32]),t(I,[2,33]),t(I,[2,34]),t(N,[2,81]),t(N,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},t(C,[2,79]),t(C,[2,80]),{27:[1,67],29:[1,68]},t(C,[2,85]),t(C,[2,86]),{62:69,65:_,66:D,67:M,68:R,69:P,70:B,71:F},{62:77,65:_,66:D,67:M,68:R,69:P,70:B,71:F},{30:78,33:62,75:L,89:k,90:S},{73:79,75:G,76:$,78:81,79:82,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J},t(te,[2,60]),t(te,[2,62]),{73:93,75:G,76:$,78:81,79:82,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J},{30:94,33:62,75:L,76:$,89:k,90:S},{5:[1,95]},{30:96,33:62,75:L,89:k,90:S},{5:[1,97]},{30:98,33:62,75:L,89:k,90:S},{63:[1,99]},t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),{64:[1,100]},t(A,[2,59],{76:$}),t(A,[2,64],{76:xe}),{33:103,75:[1,102],89:k,90:S},t(de,[2,65],{79:104,75:G,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J}),t(Se,[2,67]),t(Se,[2,69]),t(Se,[2,70]),t(Se,[2,71]),t(Se,[2,72]),t(Se,[2,73]),t(Se,[2,74]),t(Se,[2,75]),t(Se,[2,76]),t(Se,[2,77]),t(Se,[2,78]),t(A,[2,57],{76:xe}),t(A,[2,58],{76:$}),{5:Me,28:105,31:ke,34:we,36:_e,38:$e,40:fe},{27:[1,112],76:$},{5:Ke,40:Te,56:113,57:Be,59:Ue},{27:[1,118],76:$},{33:119,89:k,90:S},{33:120,89:k,90:S},{75:G,78:121,79:82,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J},t(te,[2,61]),t(te,[2,63]),t(Se,[2,68]),t(A,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:Me,28:126,31:ke,34:we,36:_e,38:$e,40:fe},t(A,[2,28]),{5:[1,127]},t(A,[2,42]),{32:[1,128]},{32:[1,129]},{5:Ke,40:Te,56:130,57:Be,59:Ue},t(A,[2,47]),{5:[1,131]},t(A,[2,48]),t(A,[2,49]),t(de,[2,66],{79:104,75:G,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J}),{33:132,89:k,90:S},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},t(A,[2,27]),{5:Me,28:145,31:ke,34:we,36:_e,38:$e,40:fe},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},t(A,[2,46]),{5:Ke,40:Te,56:152,57:Be,59:Ue},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},t(A,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},t(A,[2,43]),{5:Me,28:159,31:ke,34:we,36:_e,38:$e,40:fe},{5:Me,28:160,31:ke,34:we,36:_e,38:$e,40:fe},{5:Me,28:161,31:ke,34:we,36:_e,38:$e,40:fe},{5:Me,28:162,31:ke,34:we,36:_e,38:$e,40:fe},{5:Ke,40:Te,56:163,57:Be,59:Ue},{5:Ke,40:Te,56:164,57:Be,59:Ue},t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,44]),t(A,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:o(function(ae,U){if(U.recoverable)this.trace(ae);else{var ce=new Error(ae);throw ce.hash=U,ce}},"parseError"),parse:o(function(ae){var U=this,ce=[0],z=[],ne=[null],se=[],be=this.table,pe="",me=0,Re=0,ge=0,Ie=2,qe=1,Pe=se.slice.call(arguments,1),Xe=Object.create(this.lexer),oe={yy:{}};for(var et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,et)&&(oe.yy[et]=this.yy[et]);Xe.setInput(ae,oe.yy),oe.yy.lexer=Xe,oe.yy.parser=this,typeof Xe.yylloc>"u"&&(Xe.yylloc={});var he=Xe.yylloc;se.push(he);var ot=Xe.options&&Xe.options.ranges;typeof oe.yy.parseError=="function"?this.parseError=oe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Dt(tr){ce.length=ce.length-2*tr,ne.length=ne.length-tr,se.length=se.length-tr}o(Dt,"popStack");function It(){var tr;return tr=z.pop()||Xe.lex()||qe,typeof tr!="number"&&(tr instanceof Array&&(z=tr,tr=z.pop()),tr=U.symbols_[tr]||tr),tr}o(It,"lex");for(var wt,Rt,it,at,Ct,yt,dt={},Ht,cr,Kt,kr;;){if(it=ce[ce.length-1],this.defaultActions[it]?at=this.defaultActions[it]:((wt===null||typeof wt>"u")&&(wt=It()),at=be[it]&&be[it][wt]),typeof at>"u"||!at.length||!at[0]){var ur="";kr=[];for(Ht in be[it])this.terminals_[Ht]&&Ht>Ie&&kr.push("'"+this.terminals_[Ht]+"'");Xe.showPosition?ur="Parse error on line "+(me+1)+`: +`+Xe.showPosition()+` +Expecting `+kr.join(", ")+", got '"+(this.terminals_[wt]||wt)+"'":ur="Parse error on line "+(me+1)+": Unexpected "+(wt==qe?"end of input":"'"+(this.terminals_[wt]||wt)+"'"),this.parseError(ur,{text:Xe.match,token:this.terminals_[wt]||wt,line:Xe.yylineno,loc:he,expected:kr})}if(at[0]instanceof Array&&at.length>1)throw new Error("Parse Error: multiple actions possible at state: "+it+", token: "+wt);switch(at[0]){case 1:ce.push(wt),ne.push(Xe.yytext),se.push(Xe.yylloc),ce.push(at[1]),wt=null,Rt?(wt=Rt,Rt=null):(Re=Xe.yyleng,pe=Xe.yytext,me=Xe.yylineno,he=Xe.yylloc,ge>0&&ge--);break;case 2:if(cr=this.productions_[at[1]][1],dt.$=ne[ne.length-cr],dt._$={first_line:se[se.length-(cr||1)].first_line,last_line:se[se.length-1].last_line,first_column:se[se.length-(cr||1)].first_column,last_column:se[se.length-1].last_column},ot&&(dt._$.range=[se[se.length-(cr||1)].range[0],se[se.length-1].range[1]]),yt=this.performAction.apply(dt,[pe,Re,me,oe.yy,at[1],ne,se].concat(Pe)),typeof yt<"u")return yt;cr&&(ce=ce.slice(0,-1*cr*2),ne=ne.slice(0,-1*cr),se=se.slice(0,-1*cr)),ce.push(this.productions_[at[1]][0]),ne.push(dt.$),se.push(dt._$),Kt=be[ce[ce.length-2]][ce[ce.length-1]],ce.push(Kt);break;case 3:return!0}}return!0},"parse")},Ne=(function(){var j={EOF:1,parseError:o(function(U,ce){if(this.yy.parser)this.yy.parser.parseError(U,ce);else throw new Error(U)},"parseError"),setInput:o(function(ae,U){return this.yy=U||this.yy||{},this._input=ae,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ae=this._input[0];this.yytext+=ae,this.yyleng++,this.offset++,this.match+=ae,this.matched+=ae;var U=ae.match(/(?:\r\n?|\n).*/g);return U?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ae},"input"),unput:o(function(ae){var U=ae.length,ce=ae.split(/(?:\r\n?|\n)/g);this._input=ae+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-U),this.offset-=U;var z=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ce.length-1&&(this.yylineno-=ce.length-1);var ne=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ce?(ce.length===z.length?this.yylloc.first_column:0)+z[z.length-ce.length].length-ce[0].length:this.yylloc.first_column-U},this.options.ranges&&(this.yylloc.range=[ne[0],ne[0]+this.yyleng-U]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ae){this.unput(this.match.slice(ae))},"less"),pastInput:o(function(){var ae=this.matched.substr(0,this.matched.length-this.match.length);return(ae.length>20?"...":"")+ae.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ae=this.match;return ae.length<20&&(ae+=this._input.substr(0,20-ae.length)),(ae.substr(0,20)+(ae.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ae=this.pastInput(),U=new Array(ae.length+1).join("-");return ae+this.upcomingInput()+` +`+U+"^"},"showPosition"),test_match:o(function(ae,U){var ce,z,ne;if(this.options.backtrack_lexer&&(ne={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ne.yylloc.range=this.yylloc.range.slice(0))),z=ae[0].match(/(?:\r\n?|\n).*/g),z&&(this.yylineno+=z.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:z?z[z.length-1].length-z[z.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ae[0].length},this.yytext+=ae[0],this.match+=ae[0],this.matches=ae,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ae[0].length),this.matched+=ae[0],ce=this.performAction.call(this,this.yy,this,U,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ce)return ce;if(this._backtrack){for(var se in ne)this[se]=ne[se];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ae,U,ce,z;this._more||(this.yytext="",this.match="");for(var ne=this._currentRules(),se=0;seU[0].length)){if(U=ce,z=se,this.options.backtrack_lexer){if(ae=this.test_match(ce,ne[se]),ae!==!1)return ae;if(this._backtrack){U=!1;continue}else return!1}else if(!this.options.flex)break}return U?(ae=this.test_match(U,ne[z]),ae!==!1?ae:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var U=this.next();return U||this.lex()},"lex"),begin:o(function(U){this.conditionStack.push(U)},"begin"),popState:o(function(){var U=this.conditionStack.length-1;return U>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(U){return U=this.conditionStack.length-1-Math.abs(U||0),U>=0?this.conditionStack[U]:"INITIAL"},"topState"),pushState:o(function(U){this.begin(U)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(U,ce,z,ne){var se=ne;switch(z){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;break;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;break;case 60:return this.begin("style"),74;break;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return ce.yytext=ce.yytext.trim(),89;break;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return j})();Ge.lexer=Ne;function We(){this.yy={}}return o(We,"Parser"),We.prototype=Ge,Ge.Parser=We,new We})();Jq.parser=Jq;vwe=Jq});var z7,bwe=O(()=>{"use strict";jt();xt();si();z7=class{constructor(){this.relations=[];this.latestRequirement=this.getInitialRequirement();this.requirements=new Map;this.latestElement=this.getInitialElement();this.elements=new Map;this.classes=new Map;this.direction="TB";this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"};this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"};this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"};this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"};this.setAccTitle=Lr;this.getAccTitle=Or;this.setAccDescription=Pr;this.getAccDescription=Br;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getConfig=o(()=>ve().requirement,"getConfig");this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(e,r){return this.requirements.has(e)||this.requirements.set(e,{name:e,type:r,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=e)}setNewReqText(e){this.latestRequirement!==void 0&&(this.latestRequirement.text=e)}setNewReqRisk(e){this.latestRequirement!==void 0&&(this.latestRequirement.risk=e)}setNewReqVerifyMethod(e){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=e)}addElement(e){return this.elements.has(e)||(this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),K.info("Added new element: ",e)),this.resetLatestElement(),this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){this.latestElement!==void 0&&(this.latestElement.type=e)}setNewElementDocRef(e){this.latestElement!==void 0&&(this.latestElement.docRef=e)}addRelationship(e,r,n){this.relations.push({type:e,src:r,dst:n})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,_r()}setCssStyle(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(!r||!i)return;for(let a of r)a.includes(",")?i.cssStyles.push(...a.split(",")):i.cssStyles.push(a)}}setClass(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(i)for(let a of r){i.classes.push(a);let s=this.classes.get(a)?.styles;s&&i.cssStyles.push(...s)}}}defineClass(e,r){for(let n of e){let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.requirements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))}),this.elements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))})}}getClasses(){return this.classes}getData(){let e=ve(),r=[],n=[];for(let i of this.requirements.values()){let a=i;a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),a.shape="requirementBox",a.look=e.look,r.push(a)}for(let i of this.elements.values()){let a=i;a.shape="requirementBox",a.look=e.look,a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),r.push(a)}for(let i of this.relations){let a=0,s=i.type===this.Relationships.CONTAINS,l={id:`${i.src}-${i.dst}-${a}`,start:this.requirements.get(i.src)?.name??this.elements.get(i.src)?.name,end:this.requirements.get(i.dst)?.name??this.elements.get(i.dst)?.name,label:`\xAB${i.type}\xBB`,classes:"relationshipLine",style:["fill:none",s?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:s?"normal":"dashed",arrowTypeStart:s?"requirement_contains":"",arrowTypeEnd:s?"":"requirement_arrow",look:e.look,labelType:"markdown"};n.push(l),a++}return{nodes:r,edges:n,other:{},config:e,direction:this.getDirection()}}}});var Dlt,Twe,wwe=O(()=>{"use strict";Dlt=o(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + } + .edgeLabel .label rect { + fill: ${t.edgeLabelBackground}; + } + .edgeLabel .label text { + fill: ${t.relationLabelColor}; + } + .divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; + } + .label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + .labelBkg { + background-color: ${t.edgeLabelBackground}; + } + +`,"getStyles"),Twe=Dlt});var eU={};vr(eU,{draw:()=>Rlt});var Rlt,kwe=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();Rlt=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing requirement diagram (unified)",e);let{securityLevel:i,state:a,layout:s}=ve(),l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=Ru(s),l.nodeSpacing=a?.nodeSpacing??50,l.rankSpacing=a?.rankSpacing??50,l.markers=["requirement_contains","requirement_arrow"],l.diagramId=e,await Ol(l,u);let h=8;Xt.insertTitle(u,"requirementDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,h,"requirementDiagram",a?.useMaxWidth??!0)},"draw")});var Ewe={};vr(Ewe,{diagram:()=>Llt});var Llt,Swe=O(()=>{"use strict";xwe();bwe();wwe();kwe();Llt={parser:vwe,get db(){return new z7},renderer:eU,styles:Twe}});var tU,_we,Dwe=O(()=>{"use strict";tU=(function(){var t=o(function(Re,ge,Ie,qe){for(Ie=Ie||{},qe=Re.length;qe--;Ie[Re[qe]]=ge);return Ie},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,12],u=[1,14],h=[1,15],f=[1,17],d=[1,18],p=[1,19],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],T=[1,31],E=[1,32],w=[1,33],k=[1,34],S=[1,35],A=[1,36],L=[1,37],I=[1,38],N=[1,39],C=[1,40],_=[1,42],D=[1,43],M=[1,44],R=[1,45],P=[1,46],B=[1,47],F=[1,4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,49,50,51,53,54,56,61,62,63,64,73],G=[1,74],$=[1,80],V=[1,81],X=[1,82],Q=[1,83],H=[1,84],ie=[1,85],Y=[1,86],le=[1,87],ee=[1,88],J=[1,89],te=[1,90],Z=[1,91],xe=[1,92],de=[1,93],Se=[1,94],Me=[1,95],ke=[1,96],we=[1,97],_e=[1,98],$e=[1,99],fe=[1,100],Ke=[1,101],Te=[1,102],Be=[1,103],Ue=[1,104],Ge=[1,105],Ne=[2,78],We=[4,5,17,51,53,54],j=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],ae=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,50,51,53,54,56,61,62,63,64,73],U=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,49,51,53,54,56,61,62,63,64,73],ce=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,51,53,54,56,61,62,63,64,73],z=[5,52],ne=[70,71,72,73],se=[1,151],be={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,INVALID:10,box_section:11,box_line:12,participant_statement:13,create:14,box:15,restOfLine:16,end:17,signal:18,autonumber:19,NUM:20,off:21,activate:22,actor:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,legacy_title:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,loop:37,rect:38,opt:39,alt:40,else_sections:41,par:42,par_sections:43,par_over:44,critical:45,option_sections:46,break:47,option:48,and:49,else:50,participant:51,AS:52,participant_actor:53,destroy:54,actor_with_config:55,note:56,placement:57,text2:58,over:59,actor_pair:60,links:61,link:62,properties:63,details:64,spaceList:65,",":66,left_of:67,right_of:68,signaltype:69,"+":70,"-":71,"()":72,ACTOR:73,config_object:74,CONFIG_START:75,CONFIG_CONTENT:76,CONFIG_END:77,SOLID_OPEN_ARROW:78,DOTTED_OPEN_ARROW:79,SOLID_ARROW:80,SOLID_ARROW_TOP:81,SOLID_ARROW_BOTTOM:82,STICK_ARROW_TOP:83,STICK_ARROW_BOTTOM:84,SOLID_ARROW_TOP_DOTTED:85,SOLID_ARROW_BOTTOM_DOTTED:86,STICK_ARROW_TOP_DOTTED:87,STICK_ARROW_BOTTOM_DOTTED:88,SOLID_ARROW_TOP_REVERSE:89,SOLID_ARROW_BOTTOM_REVERSE:90,STICK_ARROW_TOP_REVERSE:91,STICK_ARROW_BOTTOM_REVERSE:92,SOLID_ARROW_TOP_REVERSE_DOTTED:93,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:94,STICK_ARROW_TOP_REVERSE_DOTTED:95,STICK_ARROW_BOTTOM_REVERSE_DOTTED:96,BIDIRECTIONAL_SOLID_ARROW:97,DOTTED_ARROW:98,BIDIRECTIONAL_DOTTED_ARROW:99,SOLID_CROSS:100,DOTTED_CROSS:101,SOLID_POINT:102,DOTTED_POINT:103,TXT:104,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",10:"INVALID",14:"create",15:"box",16:"restOfLine",17:"end",19:"autonumber",20:"NUM",21:"off",22:"activate",24:"deactivate",30:"title",31:"legacy_title",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"loop",38:"rect",39:"opt",40:"alt",42:"par",44:"par_over",45:"critical",47:"break",48:"option",49:"and",50:"else",51:"participant",52:"AS",53:"participant_actor",54:"destroy",56:"note",59:"over",61:"links",62:"link",63:"properties",64:"details",66:",",67:"left_of",68:"right_of",70:"+",71:"-",72:"()",73:"ACTOR",75:"CONFIG_START",76:"CONFIG_CONTENT",77:"CONFIG_END",78:"SOLID_OPEN_ARROW",79:"DOTTED_OPEN_ARROW",80:"SOLID_ARROW",81:"SOLID_ARROW_TOP",82:"SOLID_ARROW_BOTTOM",83:"STICK_ARROW_TOP",84:"STICK_ARROW_BOTTOM",85:"SOLID_ARROW_TOP_DOTTED",86:"SOLID_ARROW_BOTTOM_DOTTED",87:"STICK_ARROW_TOP_DOTTED",88:"STICK_ARROW_BOTTOM_DOTTED",89:"SOLID_ARROW_TOP_REVERSE",90:"SOLID_ARROW_BOTTOM_REVERSE",91:"STICK_ARROW_TOP_REVERSE",92:"STICK_ARROW_BOTTOM_REVERSE",93:"SOLID_ARROW_TOP_REVERSE_DOTTED",94:"SOLID_ARROW_BOTTOM_REVERSE_DOTTED",95:"STICK_ARROW_TOP_REVERSE_DOTTED",96:"STICK_ARROW_BOTTOM_REVERSE_DOTTED",97:"BIDIRECTIONAL_SOLID_ARROW",98:"DOTTED_ARROW",99:"BIDIRECTIONAL_DOTTED_ARROW",100:"SOLID_CROSS",101:"DOTTED_CROSS",102:"SOLID_POINT",103:"DOTTED_POINT",104:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[8,1],[11,0],[11,2],[12,2],[12,1],[12,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[46,1],[46,4],[43,1],[43,4],[41,1],[41,4],[13,5],[13,3],[13,5],[13,3],[13,3],[13,5],[13,3],[13,5],[13,3],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[65,2],[65,1],[60,3],[60,1],[57,1],[57,1],[18,5],[18,5],[18,5],[18,5],[18,6],[18,4],[55,2],[74,3],[23,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[58,1]],performAction:o(function(ge,Ie,qe,Pe,Xe,oe,et){var he=oe.length-1;switch(Xe){case 3:return Pe.apply(oe[he]),oe[he];break;case 4:case 10:this.$=[];break;case 5:case 11:oe[he-1].push(oe[he]),this.$=oe[he-1];break;case 6:case 7:case 12:case 13:this.$=oe[he];break;case 8:case 9:case 14:this.$=[];break;case 16:oe[he].type="createParticipant",this.$=oe[he];break;case 17:oe[he-1].unshift({type:"boxStart",boxData:Pe.parseBoxData(oe[he-2])}),oe[he-1].push({type:"boxEnd",boxText:oe[he-2]}),this.$=oe[he-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(oe[he-2]),sequenceIndexStep:Number(oe[he-1]),sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(oe[he-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:Pe.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:Pe.LINETYPE.ACTIVE_START,actor:oe[he-1].actor};break;case 24:this.$={type:"activeEnd",signalType:Pe.LINETYPE.ACTIVE_END,actor:oe[he-1].actor};break;case 30:Pe.setDiagramTitle(oe[he].substring(6)),this.$=oe[he].substring(6);break;case 31:Pe.setDiagramTitle(oe[he].substring(7)),this.$=oe[he].substring(7);break;case 32:this.$=oe[he].trim(),Pe.setAccTitle(this.$);break;case 33:case 34:this.$=oe[he].trim(),Pe.setAccDescription(this.$);break;case 35:oe[he-1].unshift({type:"loopStart",loopText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.LOOP_START}),oe[he-1].push({type:"loopEnd",loopText:oe[he-2],signalType:Pe.LINETYPE.LOOP_END}),this.$=oe[he-1];break;case 36:oe[he-1].unshift({type:"rectStart",color:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.RECT_START}),oe[he-1].push({type:"rectEnd",color:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.RECT_END}),this.$=oe[he-1];break;case 37:oe[he-1].unshift({type:"optStart",optText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.OPT_START}),oe[he-1].push({type:"optEnd",optText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.OPT_END}),this.$=oe[he-1];break;case 38:oe[he-1].unshift({type:"altStart",altText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.ALT_START}),oe[he-1].push({type:"altEnd",signalType:Pe.LINETYPE.ALT_END}),this.$=oe[he-1];break;case 39:oe[he-1].unshift({type:"parStart",parText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.PAR_START}),oe[he-1].push({type:"parEnd",signalType:Pe.LINETYPE.PAR_END}),this.$=oe[he-1];break;case 40:oe[he-1].unshift({type:"parStart",parText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.PAR_OVER_START}),oe[he-1].push({type:"parEnd",signalType:Pe.LINETYPE.PAR_END}),this.$=oe[he-1];break;case 41:oe[he-1].unshift({type:"criticalStart",criticalText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.CRITICAL_START}),oe[he-1].push({type:"criticalEnd",signalType:Pe.LINETYPE.CRITICAL_END}),this.$=oe[he-1];break;case 42:oe[he-1].unshift({type:"breakStart",breakText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.BREAK_START}),oe[he-1].push({type:"breakEnd",optText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.BREAK_END}),this.$=oe[he-1];break;case 44:this.$=oe[he-3].concat([{type:"option",optionText:Pe.parseMessage(oe[he-1]),signalType:Pe.LINETYPE.CRITICAL_OPTION},oe[he]]);break;case 46:this.$=oe[he-3].concat([{type:"and",parText:Pe.parseMessage(oe[he-1]),signalType:Pe.LINETYPE.PAR_AND},oe[he]]);break;case 48:this.$=oe[he-3].concat([{type:"else",altText:Pe.parseMessage(oe[he-1]),signalType:Pe.LINETYPE.ALT_ELSE},oe[he]]);break;case 49:oe[he-3].draw="participant",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 50:oe[he-1].draw="participant",oe[he-1].type="addParticipant",this.$=oe[he-1];break;case 51:oe[he-3].draw="actor",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 52:case 57:oe[he-1].draw="actor",oe[he-1].type="addParticipant",this.$=oe[he-1];break;case 53:oe[he-1].type="destroyParticipant",this.$=oe[he-1];break;case 54:oe[he-3].draw="participant",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 55:oe[he-1].draw="participant",oe[he-1].type="addParticipant",this.$=oe[he-1];break;case 56:oe[he-3].draw="actor",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 58:this.$=[oe[he-1],{type:"addNote",placement:oe[he-2],actor:oe[he-1].actor,text:oe[he]}];break;case 59:oe[he-2]=[].concat(oe[he-1],oe[he-1]).slice(0,2),oe[he-2][0]=oe[he-2][0].actor,oe[he-2][1]=oe[he-2][1].actor,this.$=[oe[he-1],{type:"addNote",placement:Pe.PLACEMENT.OVER,actor:oe[he-2].slice(0,2),text:oe[he]}];break;case 60:this.$=[oe[he-1],{type:"addLinks",actor:oe[he-1].actor,text:oe[he]}];break;case 61:this.$=[oe[he-1],{type:"addALink",actor:oe[he-1].actor,text:oe[he]}];break;case 62:this.$=[oe[he-1],{type:"addProperties",actor:oe[he-1].actor,text:oe[he]}];break;case 63:this.$=[oe[he-1],{type:"addDetails",actor:oe[he-1].actor,text:oe[he]}];break;case 66:this.$=[oe[he-2],oe[he]];break;case 67:this.$=oe[he];break;case 68:this.$=Pe.PLACEMENT.LEFTOF;break;case 69:this.$=Pe.PLACEMENT.RIGHTOF;break;case 70:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he],activate:!0},{type:"activeStart",signalType:Pe.LINETYPE.ACTIVE_START,actor:oe[he-1].actor}];break;case 71:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he]},{type:"activeEnd",signalType:Pe.LINETYPE.ACTIVE_END,actor:oe[he-4].actor}];break;case 72:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he],activate:!0,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:Pe.LINETYPE.CENTRAL_CONNECTION,actor:oe[he-1].actor}];break;case 73:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-2],msg:oe[he],activate:!1,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:oe[he-4].actor}];break;case 74:this.$=[oe[he-5],oe[he-1],{type:"addMessage",from:oe[he-5].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he],activate:!0,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:Pe.LINETYPE.CENTRAL_CONNECTION,actor:oe[he-1].actor},{type:"centralConnectionReverse",signalType:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:oe[he-5].actor}];break;case 75:this.$=[oe[he-3],oe[he-1],{type:"addMessage",from:oe[he-3].actor,to:oe[he-1].actor,signalType:oe[he-2],msg:oe[he]}];break;case 76:this.$={type:"addParticipant",actor:oe[he-1],config:oe[he]};break;case 77:this.$=oe[he-1].trim();break;case 78:this.$={type:"addParticipant",actor:oe[he]};break;case 79:this.$=Pe.LINETYPE.SOLID_OPEN;break;case 80:this.$=Pe.LINETYPE.DOTTED_OPEN;break;case 81:this.$=Pe.LINETYPE.SOLID;break;case 82:this.$=Pe.LINETYPE.SOLID_TOP;break;case 83:this.$=Pe.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=Pe.LINETYPE.STICK_TOP;break;case 85:this.$=Pe.LINETYPE.STICK_BOTTOM;break;case 86:this.$=Pe.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=Pe.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=Pe.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=Pe.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=Pe.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=Pe.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=Pe.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=Pe.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=Pe.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=Pe.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=Pe.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=Pe.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=Pe.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=Pe.LINETYPE.DOTTED;break;case 100:this.$=Pe.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=Pe.LINETYPE.SOLID_CROSS;break;case 102:this.$=Pe.LINETYPE.DOTTED_CROSS;break;case 103:this.$=Pe.LINETYPE.SOLID_POINT;break;case 104:this.$=Pe.LINETYPE.DOTTED_POINT;break;case 105:this.$=Pe.parseMessage(oe[he].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,10,14,15,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},t(F,[2,5]),{9:48,13:13,14:u,15:h,18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},t(F,[2,7]),t(F,[2,8]),t(F,[2,9]),t(F,[2,15]),{13:49,51:I,53:N,54:C},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:B},{23:56,73:B},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},t(F,[2,30]),t(F,[2,31]),{33:[1,62]},{35:[1,63]},t(F,[2,34]),{16:[1,64]},{16:[1,65]},{16:[1,66]},{16:[1,67]},{16:[1,68]},{16:[1,69]},{16:[1,70]},{16:[1,71]},{23:72,55:73,73:G},{23:75,55:76,73:G},{23:77,73:B},{69:78,72:[1,79],78:$,79:V,80:X,81:Q,82:H,83:ie,84:Y,85:le,86:ee,87:J,88:te,89:Z,90:xe,91:de,92:Se,93:Me,94:ke,95:we,96:_e,97:$e,98:fe,99:Ke,100:Te,101:Be,102:Ue,103:Ge},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:B},{23:111,73:B},{23:112,73:B},{23:113,73:B},t([5,66,72,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],Ne),t(F,[2,6]),t(F,[2,16]),t(We,[2,10],{11:114}),t(F,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},t(F,[2,22]),{5:[1,118]},{5:[1,119]},t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,29]),t(F,[2,32]),t(F,[2,33]),t(j,i,{7:120}),t(j,i,{7:121}),t(j,i,{7:122}),t(ae,i,{41:123,7:124}),t(U,i,{43:125,7:126}),t(U,i,{7:126,43:127}),t(ce,i,{46:128,7:129}),t(j,i,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},t(z,Ne,{74:135,75:[1,136]}),{5:[1,138],52:[1,137]},{5:[1,140],52:[1,139]},{5:[1,141]},{23:145,70:[1,142],71:[1,143],72:[1,144],73:B},{69:146,78:$,79:V,80:X,81:Q,82:H,83:ie,84:Y,85:le,86:ee,87:J,88:te,89:Z,90:xe,91:de,92:Se,93:Me,94:ke,95:we,96:_e,97:$e,98:fe,99:Ke,100:Te,101:Be,102:Ue,103:Ge},t(ne,[2,79]),t(ne,[2,80]),t(ne,[2,81]),t(ne,[2,82]),t(ne,[2,83]),t(ne,[2,84]),t(ne,[2,85]),t(ne,[2,86]),t(ne,[2,87]),t(ne,[2,88]),t(ne,[2,89]),t(ne,[2,90]),t(ne,[2,91]),t(ne,[2,92]),t(ne,[2,93]),t(ne,[2,94]),t(ne,[2,95]),t(ne,[2,96]),t(ne,[2,97]),t(ne,[2,98]),t(ne,[2,99]),t(ne,[2,100]),t(ne,[2,101]),t(ne,[2,102]),t(ne,[2,103]),t(ne,[2,104]),{23:147,73:B},{23:149,60:148,73:B},{73:[2,68]},{73:[2,69]},{58:150,104:se},{58:152,104:se},{58:153,104:se},{58:154,104:se},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:I,53:N,54:C},{5:[1,160]},t(F,[2,20]),t(F,[2,21]),t(F,[2,23]),t(F,[2,24]),{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,161],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,162],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,163],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{17:[1,164]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,47],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,50:[1,165],51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{17:[1,166]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,45],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,49:[1,167],51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{17:[1,168]},{17:[1,169]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,43],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,48:[1,170],51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,171],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{16:[1,172]},t(F,[2,50]),{16:[1,173]},t(F,[2,55]),t(z,[2,76]),{76:[1,174]},{16:[1,175]},t(F,[2,52]),{16:[1,176]},t(F,[2,57]),t(F,[2,53]),{23:177,73:B},{23:178,73:B},{23:179,73:B},{58:180,104:se},{23:181,72:[1,182],73:B},{58:183,104:se},{58:184,104:se},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},t(F,[2,17]),t(We,[2,11]),{13:186,51:I,53:N,54:C},t(We,[2,13]),t(We,[2,14]),t(F,[2,19]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),t(F,[2,38]),{16:[1,187]},t(F,[2,39]),{16:[1,188]},t(F,[2,40]),t(F,[2,41]),{16:[1,189]},t(F,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:se},{58:196,104:se},{58:197,104:se},{5:[2,75]},{58:198,104:se},{23:199,73:B},{5:[2,58]},{5:[2,59]},{23:200,73:B},t(We,[2,12]),t(ae,i,{7:124,41:201}),t(U,i,{7:126,43:202}),t(ce,i,{7:129,46:203}),t(F,[2,49]),t(F,[2,54]),t(z,[2,77]),t(F,[2,51]),t(F,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:se},{104:[2,66]},{17:[2,48]},{17:[2,46]},{17:[2,44]},{5:[2,74]}],defaultActions:{5:[2,1],6:[2,2],108:[2,68],109:[2,69],150:[2,60],151:[2,105],152:[2,61],153:[2,62],154:[2,63],180:[2,75],183:[2,58],184:[2,59],195:[2,70],196:[2,71],197:[2,72],198:[2,73],200:[2,66],201:[2,48],202:[2,46],203:[2,44],204:[2,74]},parseError:o(function(ge,Ie){if(Ie.recoverable)this.trace(ge);else{var qe=new Error(ge);throw qe.hash=Ie,qe}},"parseError"),parse:o(function(ge){var Ie=this,qe=[0],Pe=[],Xe=[null],oe=[],et=this.table,he="",ot=0,Dt=0,It=0,wt=2,Rt=1,it=oe.slice.call(arguments,1),at=Object.create(this.lexer),Ct={yy:{}};for(var yt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,yt)&&(Ct.yy[yt]=this.yy[yt]);at.setInput(ge,Ct.yy),Ct.yy.lexer=at,Ct.yy.parser=this,typeof at.yylloc>"u"&&(at.yylloc={});var dt=at.yylloc;oe.push(dt);var Ht=at.options&&at.options.ranges;typeof Ct.yy.parseError=="function"?this.parseError=Ct.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function cr(Cr){qe.length=qe.length-2*Cr,Xe.length=Xe.length-Cr,oe.length=oe.length-Cr}o(cr,"popStack");function Kt(){var Cr;return Cr=Pe.pop()||at.lex()||Rt,typeof Cr!="number"&&(Cr instanceof Array&&(Pe=Cr,Cr=Pe.pop()),Cr=Ie.symbols_[Cr]||Cr),Cr}o(Kt,"lex");for(var kr,ur,tr,hr,_n,mt,Le={},ct,St,Mr,tn;;){if(tr=qe[qe.length-1],this.defaultActions[tr]?hr=this.defaultActions[tr]:((kr===null||typeof kr>"u")&&(kr=Kt()),hr=et[tr]&&et[tr][kr]),typeof hr>"u"||!hr.length||!hr[0]){var cn="";tn=[];for(ct in et[tr])this.terminals_[ct]&&ct>wt&&tn.push("'"+this.terminals_[ct]+"'");at.showPosition?cn="Parse error on line "+(ot+1)+`: +`+at.showPosition()+` +Expecting `+tn.join(", ")+", got '"+(this.terminals_[kr]||kr)+"'":cn="Parse error on line "+(ot+1)+": Unexpected "+(kr==Rt?"end of input":"'"+(this.terminals_[kr]||kr)+"'"),this.parseError(cn,{text:at.match,token:this.terminals_[kr]||kr,line:at.yylineno,loc:dt,expected:tn})}if(hr[0]instanceof Array&&hr.length>1)throw new Error("Parse Error: multiple actions possible at state: "+tr+", token: "+kr);switch(hr[0]){case 1:qe.push(kr),Xe.push(at.yytext),oe.push(at.yylloc),qe.push(hr[1]),kr=null,ur?(kr=ur,ur=null):(Dt=at.yyleng,he=at.yytext,ot=at.yylineno,dt=at.yylloc,It>0&&It--);break;case 2:if(St=this.productions_[hr[1]][1],Le.$=Xe[Xe.length-St],Le._$={first_line:oe[oe.length-(St||1)].first_line,last_line:oe[oe.length-1].last_line,first_column:oe[oe.length-(St||1)].first_column,last_column:oe[oe.length-1].last_column},Ht&&(Le._$.range=[oe[oe.length-(St||1)].range[0],oe[oe.length-1].range[1]]),mt=this.performAction.apply(Le,[he,Dt,ot,Ct.yy,hr[1],Xe,oe].concat(it)),typeof mt<"u")return mt;St&&(qe=qe.slice(0,-1*St*2),Xe=Xe.slice(0,-1*St),oe=oe.slice(0,-1*St)),qe.push(this.productions_[hr[1]][0]),Xe.push(Le.$),oe.push(Le._$),Mr=et[qe[qe.length-2]][qe[qe.length-1]],qe.push(Mr);break;case 3:return!0}}return!0},"parse")},pe=(function(){var Re={EOF:1,parseError:o(function(Ie,qe){if(this.yy.parser)this.yy.parser.parseError(Ie,qe);else throw new Error(Ie)},"parseError"),setInput:o(function(ge,Ie){return this.yy=Ie||this.yy||{},this._input=ge,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ge=this._input[0];this.yytext+=ge,this.yyleng++,this.offset++,this.match+=ge,this.matched+=ge;var Ie=ge.match(/(?:\r\n?|\n).*/g);return Ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ge},"input"),unput:o(function(ge){var Ie=ge.length,qe=ge.split(/(?:\r\n?|\n)/g);this._input=ge+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ie),this.offset-=Ie;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),qe.length-1&&(this.yylineno-=qe.length-1);var Xe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:qe?(qe.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-qe.length].length-qe[0].length:this.yylloc.first_column-Ie},this.options.ranges&&(this.yylloc.range=[Xe[0],Xe[0]+this.yyleng-Ie]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ge){this.unput(this.match.slice(ge))},"less"),pastInput:o(function(){var ge=this.matched.substr(0,this.matched.length-this.match.length);return(ge.length>20?"...":"")+ge.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ge=this.match;return ge.length<20&&(ge+=this._input.substr(0,20-ge.length)),(ge.substr(0,20)+(ge.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ge=this.pastInput(),Ie=new Array(ge.length+1).join("-");return ge+this.upcomingInput()+` +`+Ie+"^"},"showPosition"),test_match:o(function(ge,Ie){var qe,Pe,Xe;if(this.options.backtrack_lexer&&(Xe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Xe.yylloc.range=this.yylloc.range.slice(0))),Pe=ge[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ge[0].length},this.yytext+=ge[0],this.match+=ge[0],this.matches=ge,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ge[0].length),this.matched+=ge[0],qe=this.performAction.call(this,this.yy,this,Ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),qe)return qe;if(this._backtrack){for(var oe in Xe)this[oe]=Xe[oe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ge,Ie,qe,Pe;this._more||(this.yytext="",this.match="");for(var Xe=this._currentRules(),oe=0;oeIe[0].length)){if(Ie=qe,Pe=oe,this.options.backtrack_lexer){if(ge=this.test_match(qe,Xe[oe]),ge!==!1)return ge;if(this._backtrack){Ie=!1;continue}else return!1}else if(!this.options.flex)break}return Ie?(ge=this.test_match(Ie,Xe[Pe]),ge!==!1?ge:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ie=this.next();return Ie||this.lex()},"lex"),begin:o(function(Ie){this.conditionStack.push(Ie)},"begin"),popState:o(function(){var Ie=this.conditionStack.length-1;return Ie>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ie){return Ie=this.conditionStack.length-1-Math.abs(Ie||0),Ie>=0?this.conditionStack[Ie]:"INITIAL"},"topState"),pushState:o(function(Ie){this.begin(Ie)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ie,qe,Pe,Xe){var oe=Xe;switch(Pe){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 20;case 7:return this.begin("CONFIG"),75;break;case 8:return 76;case 9:return this.popState(),this.begin("ALIAS"),77;break;case 10:return this.popState(),this.popState(),77;break;case 11:return qe.yytext=qe.yytext.trim(),73;break;case 12:return qe.yytext=qe.yytext.trim(),this.begin("ALIAS"),73;break;case 13:return qe.yytext=qe.yytext.trim(),this.popState(),73;break;case 14:return this.popState(),10;break;case 15:return this.begin("LINE"),15;break;case 16:return this.begin("ID"),51;break;case 17:return this.begin("ID"),53;break;case 18:return 14;case 19:return this.begin("ID"),54;break;case 20:return this.popState(),this.popState(),this.begin("LINE"),52;break;case 21:return this.popState(),this.popState(),5;break;case 22:return this.begin("LINE"),37;break;case 23:return this.begin("LINE"),38;break;case 24:return this.begin("LINE"),39;break;case 25:return this.begin("LINE"),40;break;case 26:return this.begin("LINE"),50;break;case 27:return this.begin("LINE"),42;break;case 28:return this.begin("LINE"),44;break;case 29:return this.begin("LINE"),49;break;case 30:return this.begin("LINE"),45;break;case 31:return this.begin("LINE"),48;break;case 32:return this.begin("LINE"),47;break;case 33:return this.popState(),16;break;case 34:return 17;case 35:return 67;case 36:return 68;case 37:return 61;case 38:return 62;case 39:return 63;case 40:return 64;case 41:return 59;case 42:return 56;case 43:return this.begin("ID"),22;break;case 44:return this.begin("ID"),24;break;case 45:return 30;case 46:return 31;case 47:return this.begin("acc_title"),32;break;case 48:return this.popState(),"acc_title_value";break;case 49:return this.begin("acc_descr"),34;break;case 50:return this.popState(),"acc_descr_value";break;case 51:this.begin("acc_descr_multiline");break;case 52:this.popState();break;case 53:return"acc_descr_multiline_value";case 54:return 6;case 55:return 19;case 56:return 21;case 57:return 66;case 58:return 5;case 59:return qe.yytext=qe.yytext.trim(),73;break;case 60:return 80;case 61:return 97;case 62:return 98;case 63:return 99;case 64:return 78;case 65:return 79;case 66:return 100;case 67:return 101;case 68:return 102;case 69:return 103;case 70:return 85;case 71:return 86;case 72:return 87;case 73:return 88;case 74:return 93;case 75:return 94;case 76:return 95;case 77:return 96;case 78:return 81;case 79:return 82;case 80:return 83;case 81:return 84;case 82:return 89;case 83:return 90;case 84:return 91;case 85:return 92;case 86:return 104;case 87:return 104;case 88:return 70;case 89:return 71;case 90:return 72;case 91:return 5;case 92:return 10}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\}(?=\s+as\s))/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^<>:\n,;@\s]+(?=\s+as\s))/i,/^(?:[^<>:\n,;@]+(?=\s*[\n;#]|$))/i,/^(?:[^<>:\n,;@]*<[^\n]*)/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\/\\\+\()\+<\->\->:\n,;]+((?!(-x|--x|-\)|--\)|-\|\\|-\\|-\/|-\/\/|-\|\/|\/\|-|\\\|-|\/\/-|\\\\-|\/\|-|--\|\\|--|\(\)))[\-]*[^\+<\->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?:--\|\\)/i,/^(?:--\|\/)/i,/^(?:--\\\\)/i,/^(?:--\/\/)/i,/^(?:\/\|--)/i,/^(?:\\\|--)/i,/^(?:\/\/--)/i,/^(?:\\\\--)/i,/^(?:-\|\\)/i,/^(?:-\|\/)/i,/^(?:-\\\\)/i,/^(?:-\/\/)/i,/^(?:\/\|-)/i,/^(?:\\\|-)/i,/^(?:\/\/-)/i,/^(?:\\\\-)/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\(\))/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[52,53],inclusive:!1},acc_descr:{rules:[50],inclusive:!1},acc_title:{rules:[48],inclusive:!1},ID:{rules:[2,3,7,11,12,13,14],inclusive:!1},ALIAS:{rules:[2,3,20,21],inclusive:!1},LINE:{rules:[2,3,33],inclusive:!1},CONFIG:{rules:[8,9,10],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,15,16,17,18,19,22,23,24,25,26,27,28,29,30,31,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],inclusive:!0}}};return Re})();be.lexer=pe;function me(){this.yy={}}return o(me,"Parser"),me.prototype=be,be.Parser=me,new me})();tU.parser=tU;_we=tU});var Olt,Plt,Blt,p3,G7,rU=O(()=>{"use strict";jt();ib();xt();fq();Ur();si();Olt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34,SOLID_TOP:41,SOLID_BOTTOM:42,STICK_TOP:43,STICK_BOTTOM:44,SOLID_ARROW_TOP_REVERSE:45,SOLID_ARROW_BOTTOM_REVERSE:46,STICK_ARROW_TOP_REVERSE:47,STICK_ARROW_BOTTOM_REVERSE:48,SOLID_TOP_DOTTED:51,SOLID_BOTTOM_DOTTED:52,STICK_TOP_DOTTED:53,STICK_BOTTOM_DOTTED:54,SOLID_ARROW_TOP_REVERSE_DOTTED:55,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:56,STICK_ARROW_TOP_REVERSE_DOTTED:57,STICK_ARROW_BOTTOM_REVERSE_DOTTED:58,CENTRAL_CONNECTION:59,CENTRAL_CONNECTION_REVERSE:60,CENTRAL_CONNECTION_DUAL:61},Plt={FILLED:0,OPEN:1},Blt={LEFTOF:0,RIGHTOF:1,OVER:2},p3={ACTOR:"actor",BOUNDARY:"boundary",COLLECTIONS:"collections",CONTROL:"control",DATABASE:"database",ENTITY:"entity",PARTICIPANT:"participant",QUEUE:"queue"},G7=class{constructor(){this.state=new Rv(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0}));this.setAccTitle=Lr;this.setAccDescription=Pr;this.setDiagramTitle=zr;this.getAccTitle=Or;this.getAccDescription=Br;this.getDiagramTitle=Fr;this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(ve().wrap),this.LINETYPE=Olt,this.ARROWTYPE=Plt,this.PLACEMENT=Blt}static{o(this,"SequenceDB")}addBox(e){this.state.records.boxes.push({name:e.text,wrap:e.wrap??this.autoWrap(),fill:e.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(e,r,n,i,a){let s=this.state.records.currentBox,l;if(a!==void 0){let h;a.includes(` +`)?h=a+` +`:h=`{ +`+a+` +}`,l=Kf(h,{schema:Xf})}i=l?.type??i,l?.alias&&(!n||n.text===r)&&(n={text:l.alias,wrap:n?.wrap,type:i});let u=this.state.records.actors.get(e);if(u){if(this.state.records.currentBox&&u.box&&this.state.records.currentBox!==u.box)throw new Error(`A same participant should only be defined in one Box: ${u.name} can't be in '${u.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(s=u.box?u.box:this.state.records.currentBox,u.box=s,u&&r===u.name&&n==null)return}if(n?.text==null&&(n={text:r,type:i}),(i==null||n.text==null)&&(n={text:r,type:i}),this.state.records.actors.set(e,{box:s,name:r,description:n.text,wrap:n.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:i??"participant"}),this.state.records.prevActor){let h=this.state.records.actors.get(this.state.records.prevActor);h&&(h.nextActor=e)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(e),this.state.records.prevActor=e}activationCount(e){let r,n=0;if(!e)return 0;for(r=0;r>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},u}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:e,to:r,message:n?.text??"",wrap:n?.wrap??this.autoWrap(),type:i,activate:a,centralConnection:s??0}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(e=>e.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(e){return this.state.records.actors.get(e)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(e){this.state.records.wrapEnabled=e}extractWrap(e){if(e===void 0)return{};e=e.trim();let r=/^:?wrap:/.exec(e)!==null?!0:/^:?nowrap:/.exec(e)!==null?!1:void 0;return{cleanedText:(r===void 0?e:e.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:r}}autoWrap(){return this.state.records.wrapEnabled!==void 0?this.state.records.wrapEnabled:ve().sequence?.wrap??!1}clear(){this.state.reset(),_r()}parseMessage(e){let r=e.trim(),{wrap:n,cleanedText:i}=this.extractWrap(r),a={text:i,wrap:n};return K.debug(`parseMessage: ${JSON.stringify(a)}`),a}parseBoxData(e){let r=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(e),n=r?.[1]?r[1].trim():"transparent",i=r?.[2]?r[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",n)||(n="transparent",i=e.trim());else{let l=new Option().style;l.color=n,l.color!==n&&(n="transparent",i=e.trim())}let{wrap:a,cleanedText:s}=this.extractWrap(i);return{text:s?wr(s,ve()):void 0,color:n,wrap:a}}addNote(e,r,n){let i={actor:e,placement:r,message:n.text,wrap:n.wrap??this.autoWrap()},a=[].concat(e,e);this.state.records.notes.push(i),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:a[0],to:a[1],message:n.text,wrap:n.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:r})}addLinks(e,r){let n=this.getActor(e);try{let i=wr(r.text,ve());i=i.replace(/=/g,"="),i=i.replace(/&/g,"&");let a=JSON.parse(i);this.insertLinks(n,a)}catch(i){K.error("error while parsing actor link text",i)}}addALink(e,r){let n=this.getActor(e);try{let i={},a=wr(r.text,ve()),s=a.indexOf("@");a=a.replace(/=/g,"="),a=a.replace(/&/g,"&");let l=a.slice(0,s-1).trim(),u=a.slice(s+1).trim();i[l]=u,this.insertLinks(n,i)}catch(i){K.error("error while parsing actor link text",i)}}insertLinks(e,r){if(e.links==null)e.links=r;else for(let n in r)e.links[n]=r[n]}addProperties(e,r){let n=this.getActor(e);try{let i=wr(r.text,ve()),a=JSON.parse(i);this.insertProperties(n,a)}catch(i){K.error("error while parsing actor properties text",i)}}insertProperties(e,r){if(e.properties==null)e.properties=r;else for(let n in r)e.properties[n]=r[n]}boxEnd(){this.state.records.currentBox=void 0}addDetails(e,r){let n=this.getActor(e),i=document.getElementById(r.text);try{let a=i.innerHTML,s=JSON.parse(a);s.properties&&this.insertProperties(n,s.properties),s.links&&this.insertLinks(n,s.links)}catch(a){K.error("error while parsing actor details text",a)}}getActorProperty(e,r){if(e?.properties!==void 0)return e.properties[r]}apply(e){if(Array.isArray(e))e.forEach(r=>{this.apply(r)});else switch(e.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:e.sequenceIndex,step:e.sequenceIndexStep,visible:e.sequenceVisible},wrap:!1,type:e.signalType});break;case"addParticipant":this.addActor(e.actor,e.actor,e.description,e.draw,e.config);break;case"createParticipant":if(this.state.records.actors.has(e.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=e.actor,this.addActor(e.actor,e.actor,e.description,e.draw,e.config),this.state.records.createdActors.set(e.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=e.actor,this.state.records.destroyedActors.set(e.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"centralConnection":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"centralConnectionReverse":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"activeEnd":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"addNote":this.addNote(e.actor,e.placement,e.text);break;case"addLinks":this.addLinks(e.actor,e.text);break;case"addALink":this.addALink(e.actor,e.text);break;case"addProperties":this.addProperties(e.actor,e.text);break;case"addDetails":this.addDetails(e.actor,e.text);break;case"addMessage":if(this.state.records.lastCreated){if(e.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(e.to!==this.state.records.lastDestroyed&&e.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(e.from,e.to,e.msg,e.signalType,e.activate,e.centralConnection);break;case"boxStart":this.addBox(e.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,e.loopText,e.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"rectStart":this.addSignal(void 0,void 0,e.color,e.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"optStart":this.addSignal(void 0,void 0,e.optText,e.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"altStart":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"else":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"setAccTitle":Lr(e.text);break;case"parStart":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"and":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,e.criticalText,e.signalType);break;case"option":this.addSignal(void 0,void 0,e.optionText,e.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"breakStart":this.addSignal(void 0,void 0,e.breakText,e.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break}}getConfig(){return ve().sequence}}});var Flt,Rwe,Lwe=O(()=>{"use strict";Flt=o(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .innerArc { + stroke-width: 1.5; + stroke-dasharray: none; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } + +`,"getStyles"),Rwe=Flt});var nU,pp,mp,gp,V7,Ym,m3,$lt,q7,g3,jm,Nwe,Qr,iU,zlt,Glt,Vlt,qlt,Ult,Wlt,Hlt,Ylt,jlt,Xlt,Klt,Qlt,Zlt,Mwe,Jlt,ect,tct,rct,nct,ict,act,Iwe,sct,lf,oct,lct,cct,uct,hct,Qn,Owe=O(()=>{"use strict";nU=Ra(Wg(),1);$r();ar();Ur();a0();pp=36,mp="actor-top",gp="actor-bottom",V7="actor-box",Ym="actor-man",m3=o(function(t,e){return i0(t,e)},"drawRect"),$lt=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,nU.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),oct(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),q7=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),g3=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await gg(e.text,Zt()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),jm=o(function(t,e){let r=0,n=0,i=e.text.split(st.lineBreakRegex),[a,s]=Uo(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||AN;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),Nwe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,jm(t,e),n},"drawLabel"),Qr=-1,iU=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),zlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=m3(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?ak(u,h.x+h.width-20,h.y+10,m.substr(1)):ik(u,h.x+h.width-20,h.y+10,m)}lf(r,Jn(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${V7}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),Glt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name;let d=6,p={...h,x:h.x+-d,y:h.y+ +d,class:"actor"},m=m3(u,h);if(m3(u,p),e.rectData=h,e.properties?.icon){let y=e.properties.icon.trim();y.charAt(0)==="@"?ak(u,h.x+h.width-20,h.y+10,y.substr(1)):ik(u,h.x+h.width-20,h.y+10,y)}lf(r,Jn(e.description))(e.description,u,h.x-d,h.y+d,h.width,h.height,{class:`actor ${V7}`},r);let g=e.height;if(m.node){let y=m.node().getBBox();e.height=y.height,g=y.height}return g},"drawActorTypeCollections"),Vlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower(),u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa(),f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name;let d=h.height/2,p=d/(2.5+h.height/50),m=u.append("g"),g=u.append("g");if(m.append("path").attr("d",`M ${h.x},${h.y+d} + a ${p},${d} 0 0 0 0,${h.height} + h ${h.width-2*p} + a ${p},${d} 0 0 0 0,-${h.height} + Z + `).attr("class",f),g.append("path").attr("d",`M ${h.x},${h.y+d} + a ${p},${d} 0 0 0 0,${h.height}`).attr("stroke","#666").attr("stroke-width","1px").attr("class",f),m.attr("transform",`translate(${p}, ${-(h.height/2)})`),g.attr("transform",`translate(${h.width-p}, ${-h.height/2})`),e.rectData=h,e.properties?.icon){let x=e.properties.icon.trim(),b=h.x+h.width-20,T=h.y+10;x.charAt(0)==="@"?ak(u,b,T,x.substr(1)):ik(u,b,T,x)}lf(r,Jn(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${V7}`},r);let y=e.height,v=m.select("path:last-child");if(v.node()){let x=v.node().getBBox();e.height=x.height,y=x.height}return y},"drawActorTypeQueue"),qlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+75,l=t.append("g").lower();n||(Qr++,l.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr);let u=t.append("g"),h=Ym;n?h+=` ${gp}`:h+=` ${mp}`,u.attr("class",h),u.attr("name",e.name);let f=Oa();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor";let d=e.x+e.width/2,p=i+32,m=22;u.append("defs").append("marker").attr("id","filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),u.append("circle").attr("cx",d).attr("cy",p).attr("r",m).attr("fill","#eaeaf7").attr("stroke","#666").attr("stroke-width",1.2),u.append("line").attr("marker-end","url(#filled-head-control)").attr("transform",`translate(${d}, ${p-m})`);let g=u.node().getBBox();return e.height=g.height+2*(r?.sequence?.labelBoxHeight??0),lf(r,Jn(e.description))(e.description,u,f.x,f.y+m+(n?5:12),f.width,f.height,{class:`actor ${Ym}`},r),e.height},"drawActorTypeControl"),Ult=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+75,l=t.append("g").lower(),u=t.append("g"),h="actor";n?h+=` ${gp}`:h+=` ${mp}`,u.attr("class",h),u.attr("name",e.name);let f=Oa();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor";let d=e.x+e.width/2,p=i+(n?10:25),m=22;u.append("circle").attr("cx",d).attr("cy",p).attr("r",m).attr("width",e.width).attr("height",e.height),u.append("line").attr("x1",d-m).attr("x2",d+m).attr("y1",p+m).attr("y2",p+m).attr("stroke-width",2);let g=u.node().getBBox();return e.height=g.height+(r?.sequence?.labelBoxHeight??0),n||(Qr++,l.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr),lf(r,Jn(e.description))(e.description,u,f.x,f.y+(n?15:30),f.width,f.height,{class:`actor ${Ym}`},r),n?u.attr("transform",`translate(0, ${m})`):u.attr("transform",`translate(0, ${m/2-5})`),e.height},"drawActorTypeEntity"),Wlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height+2*r.boxTextMargin,l=t.append("g").lower(),u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa(),f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name,h.x=e.x,h.y=i;let d=h.width/3,p=h.width/3,m=d/2,g=m/(2.5+d/50),y=u.append("g"),v=` + M ${h.x},${h.y+g} + a ${m},${g} 0 0 0 ${d},0 + a ${m},${g} 0 0 0 -${d},0 + l 0,${p-2*g} + a ${m},${g} 0 0 0 ${d},0 + l 0,-${p-2*g} +`;y.append("path").attr("d",v).attr("fill","#eaeaea").attr("stroke","#000").attr("stroke-width",1).attr("class",f),y.attr("transform",`translate(${d}, ${g})`),e.rectData=h,lf(r,Jn(e.description))(e.description,u,h.x,h.y+35,h.width,h.height,{class:`actor ${V7}`},r);let x=y.select("path:last-child");if(x.node()){let b=x.node().getBBox();e.height=b.height+(r.sequence.labelBoxHeight??0)}return e.height},"drawActorTypeDatabase"),Hlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=22,u=t.append("g").lower();n||(Qr++,u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr);let h=t.append("g"),f=Ym;n?f+=` ${gp}`:f+=` ${mp}`,h.attr("class",f),h.attr("name",e.name);let d=Oa();d.x=e.x,d.y=i,d.fill="#eaeaea",d.width=e.width,d.height=e.height,d.class="actor",h.append("line").attr("id","actor-man-torso"+Qr).attr("x1",e.x+e.width/2-l*2.5).attr("y1",i+12).attr("x2",e.x+e.width/2-15).attr("y2",i+12),h.append("line").attr("id","actor-man-arms"+Qr).attr("x1",e.x+e.width/2-l*2.5).attr("y1",i+2).attr("x2",e.x+e.width/2-l*2.5).attr("y2",i+22),h.append("circle").attr("cx",e.x+e.width/2).attr("cy",i+12).attr("r",l);let p=h.node().getBBox();return e.height=p.height+(r.sequence.labelBoxHeight??0),lf(r,Jn(e.description))(e.description,h,d.x,d.y+15,d.width,d.height,{class:`actor ${Ym}`},r),n?h.attr("transform",`translate(0,${l/2+10})`):h.attr("transform",`translate(0,${l/2+10})`),e.height},"drawActorTypeBoundary"),Ylt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Qr++,l.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr);let u=t.append("g"),h=Ym;n?h+=` ${gp}`:h+=` ${mp}`,u.attr("class",h),u.attr("name",e.name);let f=Oa();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Qr).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Qr).attr("x1",a-pp/2).attr("y1",i+33).attr("x2",a+pp/2).attr("y2",i+33),u.append("line").attr("x1",a-pp/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+pp/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,lf(r,Jn(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${Ym}`},r),e.height},"drawActorTypeActor"),jlt=o(async function(t,e,r,n){switch(e.type){case"actor":return await Ylt(t,e,r,n);case"participant":return await zlt(t,e,r,n);case"boundary":return await Hlt(t,e,r,n);case"control":return await qlt(t,e,r,n);case"entity":return await Ult(t,e,r,n);case"database":return await Wlt(t,e,r,n);case"collections":return await Glt(t,e,r,n);case"queue":return await Vlt(t,e,r,n)}},"drawActor"),Xlt=o(function(t,e,r){let i=t.append("g");Mwe(i,e),e.name&&lf(r)(e.name,i,e.x,e.y+r.boxTextMargin+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),Klt=o(function(t){return t.append("g")},"anchorElement"),Qlt=o(function(t,e,r,n,i){let a=Oa(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,m3(s,a)},"drawActivation"),Zlt=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=Fx();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",Nwe(d,m),m=Iwe(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=Jn(m.text)?await g3(d,m,e):jm(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,Jn(m.text)?(e.starty=e.sections[y].y,await g3(d,m,e)):jm(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,T)=>b+T));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),Mwe=o(function(t,e){nk(t,e)},"drawBackgroundRect"),Jlt=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),ect=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),tct=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),rct=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),nct=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),ict=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),act=o(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),Iwe=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),sct=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),lf=(function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Uo(m),b=a.split(st.lineBreakRegex);for(let T=0;T{let s=Xm(Ve),l=a.actorKeys.reduce((d,p)=>d+=t.get(p).width+(t.get(p).margin||0),0),u=Ve.boxMargin*8;l+=u,l-=2*Ve.boxTextMargin,a.wrap&&(a.name=Xt.wrapLabel(a.name,l-2*Ve.wrapPadding,s));let h=Xt.calculateTextDimensions(a.name,s);i=st.getMax(h.height,i);let f=st.getMax(l,h.width+2*Ve.wrapPadding);if(a.margin=Ve.boxTextMargin,la.textMaxHeight=i),st.getMax(n,Ve.height)}var Ve,ut,fct,dct,Xm,Bv,aU,mct,gct,sU,Fwe,$we,U7,Pwe,vct,bct,wct,kct,Ect,Bwe,Sct,zwe,Cct,Act,_ct,Gwe,Vwe=O(()=>{"use strict";Ar();Owe();xt();Ur();Ur();a0();jt();sg();ar();Ti();rU();Ve={},ut={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,$we(ve())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Ve.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Ve.boxMargin,Math.max),i.updateVal(ut.data,"startx",t-f*Ve.boxMargin,Math.min),i.updateVal(ut.data,"stopx",r+f*Ve.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Ve.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Ve.boxMargin,Math.max),i.updateVal(ut.data,"starty",e-f*Ve.boxMargin,Math.min),i.updateVal(ut.data,"stopy",n+f*Ve.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=st.getMin(t,r),a=st.getMax(t,r),s=st.getMin(e,n),l=st.getMax(e,n);this.updateVal(ut.data,"startx",i,Math.min),this.updateVal(ut.data,"starty",s,Math.min),this.updateVal(ut.data,"stopx",a,Math.max),this.updateVal(ut.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=U7(t.from).length||0,a=n.x+n.width/2+(i-1)*Ve.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Ve.activationWidth,stopy:void 0,actor:t.from,anchored:Qn.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:ut.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=st.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},fct=o(async function(t,e){ut.bumpVerticalPos(Ve.boxMargin),e.height=Ve.boxMargin,e.starty=ut.getVerticalPos();let r=Oa();r.x=e.startx,r.y=e.starty,r.width=e.width||Ve.width,r.class="note";let n=t.append("g"),i=Qn.drawRect(n,r),a=Fx();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Ve.noteFontFamily,a.fontSize=Ve.noteFontSize,a.fontWeight=Ve.noteFontWeight,a.anchor=Ve.noteAlign,a.textMargin=Ve.noteMargin,a.valign="center";let s=Jn(a.text)?await g3(n,a):jm(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Ve.noteMargin),e.height+=l+2*Ve.noteMargin,ut.bumpVerticalPos(l+2*Ve.noteMargin),e.stopy=e.starty+l+2*Ve.noteMargin,e.stopx=e.startx+r.width,ut.insert(e.startx,e.starty,e.stopx,e.stopy),ut.models.addNote(e)},"drawNote"),dct=o(function(t,e,r,n,i,a,s){let l=n.db.getActors(),u=l.get(e.from),h=l.get(e.to),f=r.sequenceVisible,d=u.x+u.width/2,p=h.x+h.width/2,m=d<=p,g=zwe(e,n),y=t.append("g"),v=16.5,x=o((k,S)=>{let A=k?v:-v;return S?-A:A},"getCircleOffset"),b=o(k=>{y.append("circle").attr("cx",k).attr("cy",s).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:T,CENTRAL_CONNECTION_REVERSE:E,CENTRAL_CONNECTION_DUAL:w}=n.db.LINETYPE;if(f)switch(e.centralConnection){case T:g&&(p+=x(m,!0));break;case E:g||(d+=x(m,!1));break;case w:g?p+=x(m,!0):d+=x(m,!1);break}switch(e.centralConnection){case T:b(p);break;case E:b(d);break;case w:b(d),b(p);break}},"drawCentralConnection"),Xm=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),Bv=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),aU=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(pct,"boundMessage");mct=o(async function(t,e,r,n,i){let{startx:a,stopx:s,starty:l,message:u,type:h,sequenceIndex:f,sequenceVisible:d}=e,p=Xt.calculateTextDimensions(u,Xm(Ve)),m=Fx();m.x=a,m.y=l+10,m.width=s-a,m.class="messageText",m.dy="1em",m.text=u,m.fontFamily=Ve.messageFontFamily,m.fontSize=Ve.messageFontSize,m.fontWeight=Ve.messageFontWeight,m.anchor=Ve.messageAlign,m.valign="center",m.textMargin=Ve.wrapPadding,m.tspan=!1,Jn(m.text)?await g3(t,m,{startx:a,stopx:s,starty:r}):jm(t,m);let g=p.width,y;if(a===s){let x=d||Ve.showSequenceNumbers,b=zwe(i,n),T=Cct(i,n),E=a+(x&&(b||T)?10:0);Ve.rightAngles?y=t.append("path").attr("d",`M ${E},${r} H ${a+st.getMax(Ve.width/2,g/2)} V ${r+25} H ${a}`):y=t.append("path").attr("d","M "+E+","+r+" C "+(E+60)+","+(r-10)+" "+(a+60)+","+(r+30)+" "+a+","+(r+20))}else y=t.append("line"),y.attr("x1",a),y.attr("y1",r),y.attr("x2",s),y.attr("y2",r),Bwe(i,n)&&dct(t,i,e,n,a,s,r);h===n.db.LINETYPE.DOTTED||h===n.db.LINETYPE.DOTTED_CROSS||h===n.db.LINETYPE.DOTTED_POINT||h===n.db.LINETYPE.DOTTED_OPEN||h===n.db.LINETYPE.BIDIRECTIONAL_DOTTED||h===n.db.LINETYPE.SOLID_TOP_DOTTED||h===n.db.LINETYPE.SOLID_BOTTOM_DOTTED||h===n.db.LINETYPE.STICK_TOP_DOTTED||h===n.db.LINETYPE.STICK_BOTTOM_DOTTED||h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(y.style("stroke-dasharray","3, 3"),y.attr("class","messageLine1")):y.attr("class","messageLine0");let v="";if(Ve.arrowMarkerAbsolute&&(v=Op(!0)),y.attr("stroke-width",2),y.attr("stroke","none"),y.style("fill","none"),(h===n.db.LINETYPE.SOLID_TOP||h===n.db.LINETYPE.SOLID_TOP_DOTTED)&&y.attr("marker-end","url("+v+"#solidTopArrowHead)"),(h===n.db.LINETYPE.SOLID_BOTTOM||h===n.db.LINETYPE.SOLID_BOTTOM_DOTTED)&&y.attr("marker-end","url("+v+"#solidBottomArrowHead)"),(h===n.db.LINETYPE.STICK_TOP||h===n.db.LINETYPE.STICK_TOP_DOTTED)&&y.attr("marker-end","url("+v+"#stickTopArrowHead)"),(h===n.db.LINETYPE.STICK_BOTTOM||h===n.db.LINETYPE.STICK_BOTTOM_DOTTED)&&y.attr("marker-end","url("+v+"#stickBottomArrowHead)"),(h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#solidBottomArrowHead)"),(h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#solidTopArrowHead)"),(h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#stickBottomArrowHead)"),(h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#stickTopArrowHead)"),(h===n.db.LINETYPE.SOLID||h===n.db.LINETYPE.DOTTED)&&y.attr("marker-end","url("+v+"#arrowhead)"),(h===n.db.LINETYPE.BIDIRECTIONAL_SOLID||h===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(y.attr("marker-start","url("+v+"#arrowhead)"),y.attr("marker-end","url("+v+"#arrowhead)")),(h===n.db.LINETYPE.SOLID_POINT||h===n.db.LINETYPE.DOTTED_POINT)&&y.attr("marker-end","url("+v+"#filled-head)"),(h===n.db.LINETYPE.SOLID_CROSS||h===n.db.LINETYPE.DOTTED_CROSS)&&y.attr("marker-end","url("+v+"#crosshead)"),d||Ve.showSequenceNumbers){let x=h===n.db.LINETYPE.BIDIRECTIONAL_SOLID||h===n.db.LINETYPE.BIDIRECTIONAL_DOTTED,b=h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,T=6,E=Bwe(i,n),w=a,k=s;x?(aa?k=s-2*T:(k=s-T,w+=i?.centralConnection===n.db.LINETYPE.CENTRAL_CONNECTION_DUAL||i?.centralConnection===n.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),k+=E?15:0,y.attr("x2",k),y.attr("x1",w)):y.attr("x1",a+T);let S=0,A=a===s,L=a<=s;A?S=e.fromBounds+1:b?S=L?e.toBounds-1:e.fromBounds+1:S=L?e.fromBounds+1:e.toBounds-1,t.append("line").attr("x1",S).attr("y1",r).attr("x2",S).attr("y2",r).attr("stroke-width",0).attr("marker-start","url("+v+"#sequencenumber)"),t.append("text").attr("x",S).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(f)}},"drawMessage"),gct=o(function(t,e,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=e.get(d),m=p.box;h&&h!=m&&(s||ut.models.addBox(h),u+=Ve.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Ve.width,p.height=st.getMax(p.height||Ve.height,Ve.height),p.margin=p.margin||Ve.actorMargin,f=st.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=ut.getVerticalPos(),ut.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,ut.models.addActor(p)}h&&!s&&ut.models.addBox(h),ut.bumpVerticalPos(f)},"addActorRenderingData"),sU=o(async function(t,e,r,n){if(n){let i=0;ut.bumpVerticalPos(Ve.boxMargin*2);for(let a of r){let s=e.get(a);s.stopy||(s.stopy=ut.getVerticalPos());let l=await Qn.drawActor(t,s,Ve,!0);i=st.getMax(i,l)}ut.bumpVerticalPos(i+Ve.boxMargin)}else for(let i of r){let a=e.get(i);await Qn.drawActor(t,a,Ve,!1)}},"drawActors"),Fwe=o(function(t,e,r,n){let i=0,a=0;for(let s of r){let l=e.get(s),u=bct(l),h=Qn.drawPopup(t,l,u,Ve,Ve.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),$we=o(function(t){Vn(Ve,t),t.fontFamily&&(Ve.actorFontFamily=Ve.noteFontFamily=Ve.messageFontFamily=t.fontFamily),t.fontSize&&(Ve.actorFontSize=Ve.noteFontSize=Ve.messageFontSize=t.fontSize),t.fontWeight&&(Ve.actorFontWeight=Ve.noteFontWeight=Ve.messageFontWeight=t.fontWeight)},"setConf"),U7=o(function(t){return ut.activations.filter(function(e){return e.actor===t})},"actorActivations"),Pwe=o(function(t,e){let r=e.get(t),n=U7(t),i=n.reduce(function(s,l){return st.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return st.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(Qu,"adjustLoopHeightForWrap");o(yct,"adjustCreatedDestroyedData");vct=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=ve();Ve=a;let s;i==="sandbox"&&(s=je("#i"+e));let l=i==="sandbox"?je(s.nodes()[0].contentDocument.body):je("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;ut.init(),K.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):je(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),T=await xct(f,y,n);if(Ve.height=await Tct(f,T,m),Qn.insertComputerIcon(h),Qn.insertDatabaseIcon(h),Qn.insertClockIcon(h),x&&(ut.bumpVerticalPos(Ve.boxMargin),b&&ut.bumpVerticalPos(m[0].textMaxHeight)),Ve.hideUnusedParticipants===!0){let B=new Set;y.forEach(F=>{B.add(F.from),B.add(F.to)}),g=g.filter(F=>B.has(F))}gct(h,f,d,g,0,y,!1);let E=await _ct(y,f,T,n);Qn.insertArrowHead(h),Qn.insertArrowCrossHead(h),Qn.insertArrowFilledHead(h),Qn.insertSequenceNumber(h),Qn.insertSolidTopArrowHead(h),Qn.insertSolidBottomArrowHead(h),Qn.insertStickTopArrowHead(h),Qn.insertStickBottomArrowHead(h);function w(B,F){let G=ut.endActivation(B);G.starty+18>F&&(G.starty=F-6,F+=12),Qn.drawActivation(h,G,F,Ve,U7(B.from).length),ut.insert(G.startx,F-10,G.stopx,F)}o(w,"activeEnd");let k=1,S=1,A=[],L=[],I=0;for(let B of y){let F,G,$;switch(B.type){case n.db.LINETYPE.NOTE:ut.resetVerticalPos(),G=B.noteModel,await fct(h,G);break;case n.db.LINETYPE.ACTIVE_START:ut.newActivation(B,h,f);break;case n.db.LINETYPE.CENTRAL_CONNECTION:ut.newActivation(B,h,f);break;case n.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:ut.newActivation(B,h,f);break;case n.db.LINETYPE.ACTIVE_END:w(B,ut.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.LOOP_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"loop",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.RECT_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin,V=>ut.newLoop(void 0,V.message));break;case n.db.LINETYPE.RECT_END:F=ut.endLoop(),L.push(F),ut.models.addLoop(F),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos());break;case n.db.LINETYPE.OPT_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.OPT_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"opt",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.ALT_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.ALT_ELSE:Qu(E,B,Ve.boxMargin+Ve.boxTextMargin,Ve.boxMargin,V=>ut.addSectionToLoop(V));break;case n.db.LINETYPE.ALT_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"alt",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V)),ut.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:Qu(E,B,Ve.boxMargin+Ve.boxTextMargin,Ve.boxMargin,V=>ut.addSectionToLoop(V));break;case n.db.LINETYPE.PAR_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"par",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.AUTONUMBER:k=B.message.start||k,S=B.message.step||S,B.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.CRITICAL_OPTION:Qu(E,B,Ve.boxMargin+Ve.boxTextMargin,Ve.boxMargin,V=>ut.addSectionToLoop(V));break;case n.db.LINETYPE.CRITICAL_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"critical",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.BREAK_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.BREAK_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"break",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;default:try{$=B.msgModel,$.starty=ut.getVerticalPos(),$.sequenceIndex=k,$.sequenceVisible=n.db.showSequenceNumbers();let V=await pct(h,$);yct(B,$,V,I,f,d,p),A.push({messageModel:$,lineStartY:V,msg:B}),ut.models.addMessage($)}catch(V){K.error("error while drawing message",V)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.SOLID_TOP,n.db.LINETYPE.SOLID_BOTTOM,n.db.LINETYPE.STICK_TOP,n.db.LINETYPE.STICK_BOTTOM,n.db.LINETYPE.SOLID_TOP_DOTTED,n.db.LINETYPE.SOLID_BOTTOM_DOTTED,n.db.LINETYPE.STICK_TOP_DOTTED,n.db.LINETYPE.STICK_BOTTOM_DOTTED,n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,n.db.LINETYPE.STICK_ARROW_TOP_REVERSE,n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(B.type)&&(k=k+S),I++}K.debug("createdActors",d),K.debug("destroyedActors",p),await sU(h,f,g,!1);for(let B of A)await mct(h,B.messageModel,B.lineStartY,n,B.msg);Ve.mirrorActors&&await sU(h,f,g,!0),L.forEach(B=>Qn.drawBackgroundRect(h,B)),iU(h,f,g,Ve);for(let B of ut.models.boxes){B.height=ut.getVerticalPos()-B.y,ut.insert(B.x,B.y,B.x+B.width,B.height);let F=Ve.boxMargin*2;B.startx=B.x-F,B.starty=B.y-F*.25,B.stopx=B.startx+B.width+2*F,B.stopy=B.starty+B.height+F*.75,B.stroke="rgb(0,0,0, 0.5)",Qn.drawBox(h,B,Ve)}x&&ut.bumpVerticalPos(Ve.boxMargin);let N=Fwe(h,f,g,u),{bounds:C}=ut.getBounds();C.startx===void 0&&(C.startx=0),C.starty===void 0&&(C.starty=0),C.stopx===void 0&&(C.stopx=0),C.stopy===void 0&&(C.stopy=0);let _=C.stopy-C.starty;_2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Ve.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.STICK_TOP,r.db.LINETYPE.STICK_BOTTOM,r.db.LINETYPE.STICK_TOP_DOTTED,r.db.LINETYPE.STICK_BOTTOM_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=Xt.wrapLabel(t.message,st.getMax(m+2*Ve.wrapPadding,Ve.width),Xm(Ve)));let g=Xt.calculateTextDimensions(t.message,Xm(Ve));return{width:st.getMax(t.wrap?0:g.width+2*Ve.wrapPadding,m+2*Ve.wrapPadding,Ve.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),_ct=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=U7(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Ve.activationWidth/2,g={startx:m,stopx:m+Ve.activationWidth,actor:h.from,enabled:!0};ut.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=ut.activations.map(p=>p.actor).lastIndexOf(h.from);ut.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await wct(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=st.getMin(s.from,l.startx),s.to=st.getMax(s.to,l.startx+l.width),s.width=st.getMax(s.width,Math.abs(s.from-s.to))-Ve.labelBoxWidth})):(u=Act(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=st.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=st.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=st.getMax(s.width,Math.abs(s.to-s.from))-Ve.labelBoxWidth}else s.from=st.getMin(u.startx,s.from),s.to=st.getMax(u.stopx,s.to),s.width=st.getMax(s.width,u.width)-Ve.labelBoxWidth}))}return ut.activations=[],K.debug("Loop type widths:",i),i},"calculateLoopBounds"),Gwe={bounds:ut,drawActors:sU,drawActorsPopup:Fwe,setConf:$we,draw:vct}});var qwe={};vr(qwe,{diagram:()=>Dct});var Dct,Uwe=O(()=>{"use strict";Dwe();rU();Lwe();jt();Vwe();Dct={parser:_we,get db(){return new G7},renderer:Gwe,styles:Rwe,init:o(t=>{t.sequence||(t.sequence={}),t.wrap&&(t.sequence.wrap=t.wrap,z2({sequence:{wrap:t.wrap}}))},"init")}});var oU,W7,lU=O(()=>{"use strict";oU=(function(){var t=o(function(Ue,Ge,Ne,We){for(Ne=Ne||{},We=Ue.length;We--;Ne[Ue[We]]=Ge);return Ne},"o"),e=[1,18],r=[1,19],n=[1,20],i=[1,41],a=[1,42],s=[1,26],l=[1,24],u=[1,25],h=[1,32],f=[1,33],d=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],T=[1,29],E=[1,30],w=[1,31],k=[1,44],S=[1,46],A=[1,43],L=[1,47],I=[1,9],N=[1,8,9],C=[1,58],_=[1,59],D=[1,60],M=[1,61],R=[1,62],P=[1,63],B=[1,64],F=[1,8,9,41],G=[1,76],$=[1,8,9,12,13,22,39,41,44,68,69,70,71,72,73,74,79,81],V=[1,8,9,12,13,18,20,22,39,41,44,50,60,68,69,70,71,72,73,74,79,81,86,100,102,103],X=[13,60,86,100,102,103],Q=[13,60,73,74,86,100,102,103],H=[13,60,68,69,70,71,72,86,100,102,103],ie=[1,101],Y=[1,118],le=[1,114],ee=[1,110],J=[1,116],te=[1,111],Z=[1,112],xe=[1,113],de=[1,115],Se=[1,117],Me=[22,48,60,61,82,86,87,88,89,90],ke=[1,8,9,39,41,44],we=[1,8,9,22],_e=[1,147],$e=[1,8,9,61],fe=[1,8,9,22,48,60,61,82,86,87,88,89,90],Ke={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,emptyBody:47,SPACE:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",48:"SPACE",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[43,2],[43,3],[47,0],[47,2],[47,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:o(function(Ge,Ne,We,j,ae,U,ce){var z=U.length-1;switch(ae){case 8:this.$=U[z-1];break;case 9:case 10:case 13:case 15:this.$=U[z];break;case 11:case 14:this.$=U[z-2]+"."+U[z];break;case 12:case 16:this.$=U[z-1]+U[z];break;case 17:case 18:this.$=U[z-1]+"~"+U[z]+"~";break;case 19:j.addRelation(U[z]);break;case 20:U[z-1].title=j.cleanupLabel(U[z]),j.addRelation(U[z-1]);break;case 31:this.$=U[z].trim(),j.setAccTitle(this.$);break;case 32:case 33:this.$=U[z].trim(),j.setAccDescription(this.$);break;case 34:j.addClassesToNamespace(U[z-3],U[z-1][0],U[z-1][1]);break;case 35:j.addClassesToNamespace(U[z-4],U[z-1][0],U[z-1][1]);break;case 36:this.$=U[z],j.addNamespace(U[z]);break;case 37:this.$=[[U[z]],[]];break;case 38:this.$=[[U[z-1]],[]];break;case 39:U[z][0].unshift(U[z-2]),this.$=U[z];break;case 40:this.$=[[],[U[z]]];break;case 41:this.$=[[],[U[z-1]]];break;case 42:U[z][1].unshift(U[z-2]),this.$=U[z];break;case 44:j.setCssClass(U[z-2],U[z]);break;case 45:j.addMembers(U[z-3],U[z-1]);break;case 47:j.setCssClass(U[z-5],U[z-3]),j.addMembers(U[z-5],U[z-1]);break;case 48:this.$=U[z],j.addClass(U[z]);break;case 49:this.$=U[z-1],j.addClass(U[z-1]),j.setClassLabel(U[z-1],U[z]);break;case 53:j.addAnnotation(U[z],U[z-2]);break;case 54:case 67:this.$=[U[z]];break;case 55:U[z].push(U[z-1]),this.$=U[z];break;case 56:break;case 57:j.addMember(U[z-1],j.cleanupLabel(U[z]));break;case 58:break;case 59:break;case 60:this.$={id1:U[z-2],id2:U[z],relation:U[z-1],relationTitle1:"none",relationTitle2:"none"};break;case 61:this.$={id1:U[z-3],id2:U[z],relation:U[z-1],relationTitle1:U[z-2],relationTitle2:"none"};break;case 62:this.$={id1:U[z-3],id2:U[z],relation:U[z-2],relationTitle1:"none",relationTitle2:U[z-1]};break;case 63:this.$={id1:U[z-4],id2:U[z],relation:U[z-2],relationTitle1:U[z-3],relationTitle2:U[z-1]};break;case 64:this.$=j.addNote(U[z],U[z-1]);break;case 65:this.$=j.addNote(U[z]);break;case 66:this.$=U[z-2],j.defineClass(U[z-1],U[z]);break;case 68:this.$=U[z-2].concat([U[z]]);break;case 69:j.setDirection("TB");break;case 70:j.setDirection("BT");break;case 71:j.setDirection("RL");break;case 72:j.setDirection("LR");break;case 73:this.$={type1:U[z-2],type2:U[z],lineType:U[z-1]};break;case 74:this.$={type1:"none",type2:U[z],lineType:U[z-1]};break;case 75:this.$={type1:U[z-1],type2:"none",lineType:U[z]};break;case 76:this.$={type1:"none",type2:"none",lineType:U[z]};break;case 77:this.$=j.relationType.AGGREGATION;break;case 78:this.$=j.relationType.EXTENSION;break;case 79:this.$=j.relationType.COMPOSITION;break;case 80:this.$=j.relationType.DEPENDENCY;break;case 81:this.$=j.relationType.LOLLIPOP;break;case 82:this.$=j.lineType.LINE;break;case 83:this.$=j.lineType.DOTTED_LINE;break;case 84:case 90:this.$=U[z-2],j.setClickEvent(U[z-1],U[z]);break;case 85:case 91:this.$=U[z-3],j.setClickEvent(U[z-2],U[z-1]),j.setTooltip(U[z-2],U[z]);break;case 86:this.$=U[z-2],j.setLink(U[z-1],U[z]);break;case 87:this.$=U[z-3],j.setLink(U[z-2],U[z-1],U[z]);break;case 88:this.$=U[z-3],j.setLink(U[z-2],U[z-1]),j.setTooltip(U[z-2],U[z]);break;case 89:this.$=U[z-4],j.setLink(U[z-3],U[z-2],U[z]),j.setTooltip(U[z-3],U[z-1]);break;case 92:this.$=U[z-3],j.setClickEvent(U[z-2],U[z-1],U[z]);break;case 93:this.$=U[z-4],j.setClickEvent(U[z-3],U[z-2],U[z-1]),j.setTooltip(U[z-3],U[z]);break;case 94:this.$=U[z-3],j.setLink(U[z-2],U[z]);break;case 95:this.$=U[z-4],j.setLink(U[z-3],U[z-1],U[z]);break;case 96:this.$=U[z-4],j.setLink(U[z-3],U[z-1]),j.setTooltip(U[z-3],U[z]);break;case 97:this.$=U[z-5],j.setLink(U[z-4],U[z-2],U[z]),j.setTooltip(U[z-4],U[z-1]);break;case 98:this.$=U[z-2],j.setCssStyle(U[z-1],U[z]);break;case 99:j.setCssClass(U[z-1],U[z]);break;case 100:this.$=[U[z]];break;case 101:U[z-2].push(U[z]),this.$=U[z-2];break;case 103:this.$=U[z-1]+U[z];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:E,83:w,86:k,100:S,102:A,103:L},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(I,[2,5],{8:[1,48]}),{8:[1,49]},t(N,[2,19],{22:[1,50]}),t(N,[2,21]),t(N,[2,22]),t(N,[2,23]),t(N,[2,24]),t(N,[2,25]),t(N,[2,26]),t(N,[2,27]),t(N,[2,28]),t(N,[2,29]),t(N,[2,30]),{34:[1,51]},{36:[1,52]},t(N,[2,33]),t(N,[2,56],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:C,69:_,70:D,71:M,72:R,73:P,74:B}),{39:[1,65]},t(F,[2,43],{39:[1,67],44:[1,66]}),t(N,[2,58]),t(N,[2,59]),{16:68,60:p,86:k,100:S,102:A},{16:39,17:40,19:69,60:p,86:k,100:S,102:A,103:L},{16:39,17:40,19:70,60:p,86:k,100:S,102:A,103:L},{16:39,17:40,19:71,60:p,86:k,100:S,102:A,103:L},{60:[1,72]},{13:[1,73]},{16:39,17:40,19:74,60:p,86:k,100:S,102:A,103:L},{13:G,55:75},{58:77,60:[1,78]},t(N,[2,69]),t(N,[2,70]),t(N,[2,71]),t(N,[2,72]),t($,[2,13],{16:39,17:40,19:80,18:[1,79],20:[1,81],60:p,86:k,100:S,102:A,103:L}),t($,[2,15],{20:[1,82]}),{15:83,16:84,17:85,60:p,86:k,100:S,102:A,103:L},{16:39,17:40,19:86,60:p,86:k,100:S,102:A,103:L},t(V,[2,126]),t(V,[2,127]),t(V,[2,128]),t(V,[2,129]),t([1,8,9,12,13,20,22,39,41,44,68,69,70,71,72,73,74,79,81],[2,130]),t(I,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:87,33:e,35:r,37:n,42:i,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:E,83:w,86:k,100:S,102:A,103:L}),{5:88,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:E,83:w,86:k,100:S,102:A,103:L},t(N,[2,20]),t(N,[2,31]),t(N,[2,32]),{13:[1,90],16:39,17:40,19:89,60:p,86:k,100:S,102:A,103:L},{53:91,66:56,67:57,68:C,69:_,70:D,71:M,72:R,73:P,74:B},t(N,[2,57]),{67:92,73:P,74:B},t(X,[2,76],{66:93,68:C,69:_,70:D,71:M,72:R}),t(Q,[2,77]),t(Q,[2,78]),t(Q,[2,79]),t(Q,[2,80]),t(Q,[2,81]),t(H,[2,82]),t(H,[2,83]),{8:[1,95],24:96,30:97,40:94,43:23,46:a,54:h,56:f},{16:98,60:p,86:k,100:S,102:A},{41:[1,100],45:99,51:ie},{50:[1,102]},{13:[1,103]},{13:[1,104]},{79:[1,105],81:[1,106]},{22:Y,48:le,59:107,60:ee,82:J,84:108,85:109,86:te,87:Z,88:xe,89:de,90:Se},{60:[1,119]},{13:G,55:120},t(F,[2,65]),t(F,[2,131]),{22:Y,48:le,59:121,60:ee,61:[1,122],82:J,84:108,85:109,86:te,87:Z,88:xe,89:de,90:Se},t(Me,[2,67]),{16:39,17:40,19:123,60:p,86:k,100:S,102:A,103:L},t($,[2,16]),t($,[2,17]),t($,[2,18]),{39:[2,36]},{15:125,16:84,17:85,18:[1,124],39:[2,9],60:p,86:k,100:S,102:A,103:L},{39:[2,10]},t(ke,[2,48],{11:126,12:[1,127]}),t(I,[2,7]),{9:[1,128]},t(we,[2,60]),{16:39,17:40,19:129,60:p,86:k,100:S,102:A,103:L},{13:[1,131],16:39,17:40,19:130,60:p,86:k,100:S,102:A,103:L},t(X,[2,75],{66:132,68:C,69:_,70:D,71:M,72:R}),t(X,[2,74]),{41:[1,133]},{24:96,30:97,40:134,43:23,46:a,54:h,56:f},{8:[1,135],41:[2,37]},{8:[1,136],41:[2,40]},t(F,[2,44],{39:[1,137]}),{41:[1,138]},t(F,[2,46]),{41:[2,54],45:139,51:ie},{16:39,17:40,19:140,60:p,86:k,100:S,102:A,103:L},t(N,[2,84],{13:[1,141]}),t(N,[2,86],{13:[1,143],77:[1,142]}),t(N,[2,90],{13:[1,144],80:[1,145]}),{13:[1,146]},t(N,[2,98],{61:_e}),t($e,[2,100],{85:148,22:Y,48:le,60:ee,82:J,86:te,87:Z,88:xe,89:de,90:Se}),t(fe,[2,102]),t(fe,[2,104]),t(fe,[2,105]),t(fe,[2,106]),t(fe,[2,107]),t(fe,[2,108]),t(fe,[2,109]),t(fe,[2,110]),t(fe,[2,111]),t(fe,[2,112]),t(N,[2,99]),t(F,[2,64]),t(N,[2,66],{61:_e}),{60:[1,149]},t($,[2,14]),{15:150,16:84,17:85,60:p,86:k,100:S,102:A,103:L},{39:[2,12]},t(ke,[2,49]),{13:[1,151]},{1:[2,4]},t(we,[2,62]),t(we,[2,61]),{16:39,17:40,19:152,60:p,86:k,100:S,102:A,103:L},t(X,[2,73]),t(N,[2,34]),{41:[1,153]},{24:96,30:97,40:154,41:[2,38],43:23,46:a,54:h,56:f},{24:96,30:97,40:155,41:[2,41],43:23,46:a,54:h,56:f},{45:156,51:ie},t(F,[2,45]),{41:[2,55]},t(N,[2,53]),t(N,[2,85]),t(N,[2,87]),t(N,[2,88],{77:[1,157]}),t(N,[2,91]),t(N,[2,92],{13:[1,158]}),t(N,[2,94],{13:[1,160],77:[1,159]}),{22:Y,48:le,60:ee,82:J,84:161,85:109,86:te,87:Z,88:xe,89:de,90:Se},t(fe,[2,103]),t(Me,[2,68]),{39:[2,11]},{14:[1,162]},t(we,[2,63]),t(N,[2,35]),{41:[2,39]},{41:[2,42]},{41:[1,163]},t(N,[2,89]),t(N,[2,93]),t(N,[2,95]),t(N,[2,96],{77:[1,164]}),t($e,[2,101],{85:148,22:Y,48:le,60:ee,82:J,86:te,87:Z,88:xe,89:de,90:Se}),t(ke,[2,8]),t(F,[2,47]),t(N,[2,97])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,36],85:[2,10],125:[2,12],128:[2,4],139:[2,55],150:[2,11],154:[2,39],155:[2,42]},parseError:o(function(Ge,Ne){if(Ne.recoverable)this.trace(Ge);else{var We=new Error(Ge);throw We.hash=Ne,We}},"parseError"),parse:o(function(Ge){var Ne=this,We=[0],j=[],ae=[null],U=[],ce=this.table,z="",ne=0,se=0,be=0,pe=2,me=1,Re=U.slice.call(arguments,1),ge=Object.create(this.lexer),Ie={yy:{}};for(var qe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qe)&&(Ie.yy[qe]=this.yy[qe]);ge.setInput(Ge,Ie.yy),Ie.yy.lexer=ge,Ie.yy.parser=this,typeof ge.yylloc>"u"&&(ge.yylloc={});var Pe=ge.yylloc;U.push(Pe);var Xe=ge.options&&ge.options.ranges;typeof Ie.yy.parseError=="function"?this.parseError=Ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function oe(cr){We.length=We.length-2*cr,ae.length=ae.length-cr,U.length=U.length-cr}o(oe,"popStack");function et(){var cr;return cr=j.pop()||ge.lex()||me,typeof cr!="number"&&(cr instanceof Array&&(j=cr,cr=j.pop()),cr=Ne.symbols_[cr]||cr),cr}o(et,"lex");for(var he,ot,Dt,It,wt,Rt,it={},at,Ct,yt,dt;;){if(Dt=We[We.length-1],this.defaultActions[Dt]?It=this.defaultActions[Dt]:((he===null||typeof he>"u")&&(he=et()),It=ce[Dt]&&ce[Dt][he]),typeof It>"u"||!It.length||!It[0]){var Ht="";dt=[];for(at in ce[Dt])this.terminals_[at]&&at>pe&&dt.push("'"+this.terminals_[at]+"'");ge.showPosition?Ht="Parse error on line "+(ne+1)+`: +`+ge.showPosition()+` +Expecting `+dt.join(", ")+", got '"+(this.terminals_[he]||he)+"'":Ht="Parse error on line "+(ne+1)+": Unexpected "+(he==me?"end of input":"'"+(this.terminals_[he]||he)+"'"),this.parseError(Ht,{text:ge.match,token:this.terminals_[he]||he,line:ge.yylineno,loc:Pe,expected:dt})}if(It[0]instanceof Array&&It.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Dt+", token: "+he);switch(It[0]){case 1:We.push(he),ae.push(ge.yytext),U.push(ge.yylloc),We.push(It[1]),he=null,ot?(he=ot,ot=null):(se=ge.yyleng,z=ge.yytext,ne=ge.yylineno,Pe=ge.yylloc,be>0&&be--);break;case 2:if(Ct=this.productions_[It[1]][1],it.$=ae[ae.length-Ct],it._$={first_line:U[U.length-(Ct||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(Ct||1)].first_column,last_column:U[U.length-1].last_column},Xe&&(it._$.range=[U[U.length-(Ct||1)].range[0],U[U.length-1].range[1]]),Rt=this.performAction.apply(it,[z,se,ne,Ie.yy,It[1],ae,U].concat(Re)),typeof Rt<"u")return Rt;Ct&&(We=We.slice(0,-1*Ct*2),ae=ae.slice(0,-1*Ct),U=U.slice(0,-1*Ct)),We.push(this.productions_[It[1]][0]),ae.push(it.$),U.push(it._$),yt=ce[We[We.length-2]][We[We.length-1]],We.push(yt);break;case 3:return!0}}return!0},"parse")},Te=(function(){var Ue={EOF:1,parseError:o(function(Ne,We){if(this.yy.parser)this.yy.parser.parseError(Ne,We);else throw new Error(Ne)},"parseError"),setInput:o(function(Ge,Ne){return this.yy=Ne||this.yy||{},this._input=Ge,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Ge=this._input[0];this.yytext+=Ge,this.yyleng++,this.offset++,this.match+=Ge,this.matched+=Ge;var Ne=Ge.match(/(?:\r\n?|\n).*/g);return Ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ge},"input"),unput:o(function(Ge){var Ne=Ge.length,We=Ge.split(/(?:\r\n?|\n)/g);this._input=Ge+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ne),this.offset-=Ne;var j=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),We.length-1&&(this.yylineno-=We.length-1);var ae=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:We?(We.length===j.length?this.yylloc.first_column:0)+j[j.length-We.length].length-We[0].length:this.yylloc.first_column-Ne},this.options.ranges&&(this.yylloc.range=[ae[0],ae[0]+this.yyleng-Ne]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Ge){this.unput(this.match.slice(Ge))},"less"),pastInput:o(function(){var Ge=this.matched.substr(0,this.matched.length-this.match.length);return(Ge.length>20?"...":"")+Ge.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Ge=this.match;return Ge.length<20&&(Ge+=this._input.substr(0,20-Ge.length)),(Ge.substr(0,20)+(Ge.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Ge=this.pastInput(),Ne=new Array(Ge.length+1).join("-");return Ge+this.upcomingInput()+` +`+Ne+"^"},"showPosition"),test_match:o(function(Ge,Ne){var We,j,ae;if(this.options.backtrack_lexer&&(ae={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ae.yylloc.range=this.yylloc.range.slice(0))),j=Ge[0].match(/(?:\r\n?|\n).*/g),j&&(this.yylineno+=j.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:j?j[j.length-1].length-j[j.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ge[0].length},this.yytext+=Ge[0],this.match+=Ge[0],this.matches=Ge,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ge[0].length),this.matched+=Ge[0],We=this.performAction.call(this,this.yy,this,Ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),We)return We;if(this._backtrack){for(var U in ae)this[U]=ae[U];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ge,Ne,We,j;this._more||(this.yytext="",this.match="");for(var ae=this._currentRules(),U=0;UNe[0].length)){if(Ne=We,j=U,this.options.backtrack_lexer){if(Ge=this.test_match(We,ae[U]),Ge!==!1)return Ge;if(this._backtrack){Ne=!1;continue}else return!1}else if(!this.options.flex)break}return Ne?(Ge=this.test_match(Ne,ae[j]),Ge!==!1?Ge:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ne=this.next();return Ne||this.lex()},"lex"),begin:o(function(Ne){this.conditionStack.push(Ne)},"begin"),popState:o(function(){var Ne=this.conditionStack.length-1;return Ne>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ne){return Ne=this.conditionStack.length-1-Math.abs(Ne||0),Ne>=0?this.conditionStack[Ne]:"INITIAL"},"topState"),pushState:o(function(Ne){this.begin(Ne)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ne,We,j,ae){var U=ae;switch(j){case 0:return 62;case 1:return 63;case 2:return 64;case 3:return 65;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 79;case 22:this.popState();break;case 23:return 80;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 82;case 28:return 57;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:return this.popState(),41;break;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;break;case 39:return this.popState(),8;break;case 40:break;case 41:return this.popState(),this.popState(),41;break;case 42:return this.begin("class-body"),39;break;case 43:return this.popState(),41;break;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 83;case 50:return 75;case 51:return 76;case 52:return 78;case 53:return 54;case 54:return 56;case 55:return 49;case 56:return 50;case 57:return 81;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 77;case 65:return 77;case 66:return 77;case 67:return 77;case 68:return 69;case 69:return 69;case 70:return 71;case 71:return 71;case 72:return 70;case 73:return 68;case 74:return 72;case 75:return 73;case 76:return 74;case 77:return 22;case 78:return 44;case 79:return 100;case 80:return 18;case 81:return"PLUS";case 82:return 87;case 83:return 61;case 84:return 89;case 85:return 89;case 86:return 90;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 60;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 86;case 94:return 102;case 95:return 48;case 96:return 48;case 97:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};return Ue})();Ke.lexer=Te;function Be(){this.yy={}}return o(Be,"Parser"),Be.prototype=Ke,Ke.Parser=Be,new Be})();oU.parser=oU;W7=oU});var Ywe,y3,jwe=O(()=>{"use strict";jt();Ur();Ywe=["#","+","~","-",""],y3=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let n=wr(e,ve());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+jc(this.id);this.memberType==="method"&&(e+=`(${jc(this.parameters.trim())})`,this.returnType&&(e+=" : "+jc(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(a){let s=a[1]?a[1].trim():"";if(Ywe.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let i=e.length,a=e.substring(0,1),s=e.substring(i-1);Ywe.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=e.substring(this.visibility===""?0:1,r===""?i:i-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let n=`${this.visibility?"\\"+this.visibility:""}${jc(this.id)}${this.memberType==="method"?`(${jc(this.parameters)})${this.returnType?" : "+jc(this.returnType):""}`:""}`;this.text=n.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var H7,Xwe,Km,Fv,cU=O(()=>{"use strict";Ar();xt();jt();Ur();ar();si();a0();jwe();S2();H7="classId-",Xwe=0,Km=o(t=>st.sanitizeText(t,ve()),"sanitizeText"),Fv=class{constructor(){this.relations=[];this.classes=new Map;this.styleClasses=new Map;this.notes=new Map;this.interfaces=[];this.namespaces=new Map;this.namespaceCounter=0;this.functions=[];this.lineType={LINE:0,DOTTED_LINE:1};this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4};this.setupToolTips=o(e=>{let r=sk();je(e).select("svg").selectAll("g").filter(function(){return je(this).attr("title")!==null}).on("mouseover",a=>{let s=je(a.currentTarget),l=s.attr("title");if(!l)return;let u=a.currentTarget.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.html(fl.sanitize(l)).style("left",`${window.scrollX+u.left+u.width/2}px`).style("top",`${window.scrollY+u.bottom+4}px`),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),je(a.currentTarget).classed("hover",!1)})},"setupToolTips");this.direction="TB";this.setAccTitle=Lr;this.getAccTitle=Or;this.setAccDescription=Pr;this.getAccDescription=Br;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getConfig=o(()=>ve().class,"getConfig");this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}static{o(this,"ClassDB")}splitClassNameAndType(e){let r=st.sanitizeText(e,ve()),n="",i=r;if(r.indexOf("~")>0){let a=r.split("~");i=Km(a[0]),n=Km(a[1])}return{className:i,type:n}}setClassLabel(e,r){let n=st.sanitizeText(e,ve());r&&(r=Km(r));let{className:i}=this.splitClassNameAndType(n);this.classes.get(i).label=r,this.classes.get(i).text=`${r}${this.classes.get(i).type?`<${this.classes.get(i).type}>`:""}`}addClass(e){let r=st.sanitizeText(e,ve()),{className:n,type:i}=this.splitClassNameAndType(r);if(this.classes.has(n))return;let a=st.sanitizeText(n,ve());this.classes.set(a,{id:a,type:i,label:a,text:`${a}${i?`<${i}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:H7+a+"-"+Xwe}),Xwe++}addInterface(e,r){let n={id:`interface${this.interfaces.length}`,label:e,classId:r};this.interfaces.push(n)}lookUpDomId(e){let r=st.sanitizeText(e,ve());if(this.classes.has(r))return this.classes.get(r).domId;throw new Error("Class not found: "+r)}clear(){this.relations=[],this.classes=new Map,this.notes=new Map,this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.direction="TB",_r()}getClass(e){return this.classes.get(e)}getClasses(){return this.classes}getRelations(){return this.relations}getNote(e){let r=typeof e=="number"?`note${e}`:e;return this.notes.get(r)}getNotes(){return this.notes}addRelation(e){K.debug("Adding relation: "+JSON.stringify(e));let r=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];e.relation.type1===this.relationType.LOLLIPOP&&!r.includes(e.relation.type2)?(this.addClass(e.id2),this.addInterface(e.id1,e.id2),e.id1=`interface${this.interfaces.length-1}`):e.relation.type2===this.relationType.LOLLIPOP&&!r.includes(e.relation.type1)?(this.addClass(e.id1),this.addInterface(e.id2,e.id1),e.id2=`interface${this.interfaces.length-1}`):(this.addClass(e.id1),this.addClass(e.id2)),e.id1=this.splitClassNameAndType(e.id1).className,e.id2=this.splitClassNameAndType(e.id2).className,e.relationTitle1=st.sanitizeText(e.relationTitle1.trim(),ve()),e.relationTitle2=st.sanitizeText(e.relationTitle2.trim(),ve()),this.relations.push(e)}addAnnotation(e,r){let n=this.splitClassNameAndType(e).className;this.classes.get(n).annotations.push(r)}addMember(e,r){this.addClass(e);let n=this.splitClassNameAndType(e).className,i=this.classes.get(n);if(typeof r=="string"){let a=r.trim();a.startsWith("<<")&&a.endsWith(">>")?i.annotations.push(Km(a.substring(2,a.length-2))):a.indexOf(")")>0?i.methods.push(new y3(a,"method")):a&&i.members.push(new y3(a,"attribute"))}}addMembers(e,r){Array.isArray(r)&&(r.reverse(),r.forEach(n=>this.addMember(e,n)))}addNote(e,r){let n=this.notes.size,i={id:`note${n}`,class:r,text:e,index:n};return this.notes.set(i.id,i),i.id}cleanupLabel(e){return e.startsWith(":")&&(e=e.substring(1)),Km(e.trim())}setCssClass(e,r){e.split(",").forEach(n=>{let i=n;/\d/.exec(n[0])&&(i=H7+i);let a=this.classes.get(i);a&&(a.cssClasses+=" "+r)})}defineClass(e,r){for(let n of e){let i=this.styleClasses.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.styleClasses.set(n,i)),r&&r.forEach(a=>{if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.classes.forEach(a=>{a.cssClasses.includes(n)&&a.styles.push(...r.flatMap(s=>s.split(",")))})}}setTooltip(e,r){e.split(",").forEach(n=>{r!==void 0&&(this.classes.get(n).tooltip=Km(r))})}getTooltip(e,r){return r&&this.namespaces.has(r)?this.namespaces.get(r).classes.get(e).tooltip:this.classes.get(e).tooltip}setLink(e,r,n){let i=ve();e.split(",").forEach(a=>{let s=a;/\d/.exec(a[0])&&(s=H7+s);let l=this.classes.get(s);l&&(l.link=Xt.formatUrl(r,i),i.securityLevel==="sandbox"?l.linkTarget="_top":typeof n=="string"?l.linkTarget=Km(n):l.linkTarget="_blank")}),this.setCssClass(e,"clickable")}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFunc(i,r,n),this.classes.get(i).haveCallback=!0}),this.setCssClass(e,"clickable")}setClickFunc(e,r,n){let i=st.sanitizeText(e,ve());if(ve().securityLevel!=="loose"||r===void 0)return;let s=i;if(this.classes.has(s)){let l=this.lookUpDomId(s),u=[];if(typeof n=="string"){u=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let h=0;h{let h=document.querySelector(`[id="${l}"]`);h!==null&&h.addEventListener("click",()=>{Xt.runFunc(r,...u)},!1)})}}bindFunctions(e){this.functions.forEach(r=>{r(e)})}escapeHtml(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}getDirection(){return this.direction}setDirection(e){this.direction=e}addNamespace(e){this.namespaces.has(e)||(this.namespaces.set(e,{id:e,classes:new Map,notes:new Map,children:new Map,domId:H7+e+"-"+this.namespaceCounter}),this.namespaceCounter++)}getNamespace(e){return this.namespaces.get(e)}getNamespaces(){return this.namespaces}addClassesToNamespace(e,r,n){if(this.namespaces.has(e)){for(let i of r){let{className:a}=this.splitClassNameAndType(i),s=this.getClass(a);s.parent=e,this.namespaces.get(e).classes.set(a,s)}for(let i of n){let a=this.getNote(i);a.parent=e,this.namespaces.get(e).notes.set(i,a)}}}setCssStyle(e,r){let n=this.classes.get(e);if(!(!r||!n))for(let i of r)i.includes(",")?n.styles.push(...i.split(",")):n.styles.push(i)}getArrowMarker(e){let r;switch(e){case 0:r="aggregation";break;case 1:r="extension";break;case 2:r="composition";break;case 3:r="dependency";break;case 4:r="lollipop";break;default:r="none"}return r}getData(){let e=[],r=[],n=ve();for(let a of this.namespaces.values()){let s={id:a.id,label:a.id,isGroup:!0,padding:n.class.padding??16,shape:"rect",cssStyles:[],look:n.look};e.push(s)}for(let a of this.classes.values()){let s={...a,type:void 0,isGroup:!1,parentId:a.parent,look:n.look};e.push(s)}for(let a of this.notes.values()){let s={id:a.id,label:a.text,isGroup:!1,shape:"note",padding:n.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${n.themeVariables.noteBkgColor}`,`stroke: ${n.themeVariables.noteBorderColor}`],look:n.look,parentId:a.parent,labelType:"markdown"};e.push(s);let l=this.classes.get(a.class)?.id;if(l){let u={id:`edgeNote${a.index}`,start:a.id,end:l,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:n.look};r.push(u)}}for(let a of this.interfaces){let s={id:a.id,label:a.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:n.look};e.push(s)}let i=0;for(let a of this.relations){i++;let s={id:hu(a.id1,a.id2,{prefix:"id",counter:i}),start:a.id1,end:a.id2,type:"normal",label:a.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(a.relation.type1),arrowTypeEnd:this.getArrowMarker(a.relation.type2),startLabelRight:a.relationTitle1==="none"?"":a.relationTitle1,endLabelLeft:a.relationTitle2==="none"?"":a.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:a.style||"",pattern:a.relation.lineType==1?"dashed":"solid",look:n.look,labelType:"markdown"};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:this.getDirection()}}}});var Mct,Y7,uU=O(()=>{"use strict";ly();Mct=o(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} + +.labelBkg { + background: ${t.mainBkg}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} + ${Lu()} +`,"getStyles"),Y7=Mct});var Ict,Oct,Pct,j7,hU=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();Ict=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),Oct=o(function(t,e){return e.db.getClasses()},"getClasses"),Pct=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing class diagram (v3)",e);let{securityLevel:i,state:a,layout:s}=ve(),l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=Ru(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=e,await Ol(l,u);let h=8;Xt.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),j7={getClasses:Oct,draw:Pct,getDir:Ict}});var Kwe={};vr(Kwe,{diagram:()=>Bct});var Bct,Qwe=O(()=>{"use strict";lU();cU();uU();hU();Bct={parser:W7,get db(){return new Fv},renderer:j7,styles:Y7,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var e5e={};vr(e5e,{diagram:()=>Gct});var Gct,t5e=O(()=>{"use strict";lU();cU();uU();hU();Gct={parser:W7,get db(){return new Fv},renderer:j7,styles:Y7,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var fU,X7,dU=O(()=>{"use strict";fU=(function(){var t=o(function(F,G,$,V){for($=$||{},V=F.length;V--;$[F[V]]=G);return $},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,33],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],T=[1,28],E=[1,29],w=[1,30],k=[1,31],S=[1,32],A=[1,35],L=[1,36],I=[1,37],N=[1,38],C=[1,34],_=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],D=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,39,40,41,45,48,51,52,53,54,57],M=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],R={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,CLICK:38,STRING:39,HREF:40,classDef:41,CLASSDEF_ID:42,CLASSDEF_STYLEOPTS:43,DEFAULT:44,style:45,STYLE_IDS:46,STYLEDEF_STYLEOPTS:47,class:48,CLASSENTITY_IDS:49,STYLECLASS:50,direction_tb:51,direction_bt:52,direction_rl:53,direction_lr:54,eol:55,";":56,EDGE_STATE:57,STYLE_SEPARATOR:58,left_of:59,right_of:60,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"CLICK",39:"STRING",40:"HREF",41:"classDef",42:"CLASSDEF_ID",43:"CLASSDEF_STYLEOPTS",44:"DEFAULT",45:"style",46:"STYLE_IDS",47:"STYLEDEF_STYLEOPTS",48:"class",49:"CLASSENTITY_IDS",50:"STYLECLASS",51:"direction_tb",52:"direction_bt",53:"direction_rl",54:"direction_lr",56:";",57:"EDGE_STATE",58:"STYLE_SEPARATOR",59:"left_of",60:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[9,5],[9,5],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[55,1],[55,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(G,$,V,X,Q,H,ie){var Y=H.length-1;switch(Q){case 3:return X.setRootDoc(H[Y]),H[Y];break;case 4:this.$=[];break;case 5:H[Y]!="nl"&&(H[Y-1].push(H[Y]),this.$=H[Y-1]);break;case 6:case 7:this.$=H[Y];break;case 8:this.$="nl";break;case 12:this.$=H[Y];break;case 13:let te=H[Y-1];te.description=X.trimColon(H[Y]),this.$=te;break;case 14:this.$={stmt:"relation",state1:H[Y-2],state2:H[Y]};break;case 15:let Z=X.trimColon(H[Y]);this.$={stmt:"relation",state1:H[Y-3],state2:H[Y-1],description:Z};break;case 19:this.$={stmt:"state",id:H[Y-3],type:"default",description:"",doc:H[Y-1]};break;case 20:var le=H[Y],ee=H[Y-2].trim();if(H[Y].match(":")){var J=H[Y].split(":");le=J[0],ee=[ee,J[1]]}this.$={stmt:"state",id:le,type:"default",description:ee};break;case 21:this.$={stmt:"state",id:H[Y-3],type:"default",description:H[Y-5],doc:H[Y-1]};break;case 22:this.$={stmt:"state",id:H[Y],type:"fork"};break;case 23:this.$={stmt:"state",id:H[Y],type:"join"};break;case 24:this.$={stmt:"state",id:H[Y],type:"choice"};break;case 25:this.$={stmt:"state",id:X.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:H[Y-1].trim(),note:{position:H[Y-2].trim(),text:H[Y].trim()}};break;case 29:this.$=H[Y].trim(),X.setAccTitle(this.$);break;case 30:case 31:this.$=H[Y].trim(),X.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:H[Y-3],url:H[Y-2],tooltip:H[Y-1]};break;case 33:this.$={stmt:"click",id:H[Y-3],url:H[Y-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:H[Y-1].trim(),classes:H[Y].trim()};break;case 36:this.$={stmt:"style",id:H[Y-1].trim(),styleClass:H[Y].trim()};break;case 37:this.$={stmt:"applyClass",id:H[Y-1].trim(),styleClass:H[Y].trim()};break;case 38:X.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:X.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:X.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:X.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:H[Y].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:H[Y-2].trim(),classes:[H[Y].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:H[Y-2].trim(),classes:[H[Y].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,7]),t(_,[2,8]),t(_,[2,9]),t(_,[2,10]),t(_,[2,11]),t(_,[2,12],{14:[1,40],15:[1,41]}),t(_,[2,16]),{18:[1,42]},t(_,[2,18],{20:[1,43]}),{23:[1,44]},t(_,[2,22]),t(_,[2,23]),t(_,[2,24]),t(_,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(_,[2,28]),{34:[1,49]},{36:[1,50]},t(_,[2,31]),{13:51,24:d,57:C},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(D,[2,44],{58:[1,56]}),t(D,[2,45],{58:[1,57]}),t(_,[2,38]),t(_,[2,39]),t(_,[2,40]),t(_,[2,41]),t(_,[2,6]),t(_,[2,13]),{13:58,24:d,57:C},t(_,[2,17]),t(M,i,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(_,[2,29]),t(_,[2,30]),{39:[1,63],40:[1,64]},{43:[1,65]},{43:[1,66]},{47:[1,67]},{50:[1,68]},{24:[1,69]},{24:[1,70]},t(_,[2,14],{14:[1,71]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,72],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(_,[2,34]),t(_,[2,35]),t(_,[2,36]),t(_,[2,37]),t(D,[2,46]),t(D,[2,47]),t(_,[2,15]),t(_,[2,19]),t(M,i,{7:78}),t(_,[2,26]),t(_,[2,27]),{5:[1,79]},{5:[1,80]},{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,81],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,32]),t(_,[2,33]),t(_,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:o(function(G,$){if($.recoverable)this.trace(G);else{var V=new Error(G);throw V.hash=$,V}},"parseError"),parse:o(function(G){var $=this,V=[0],X=[],Q=[null],H=[],ie=this.table,Y="",le=0,ee=0,J=0,te=2,Z=1,xe=H.slice.call(arguments,1),de=Object.create(this.lexer),Se={yy:{}};for(var Me in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Me)&&(Se.yy[Me]=this.yy[Me]);de.setInput(G,Se.yy),Se.yy.lexer=de,Se.yy.parser=this,typeof de.yylloc>"u"&&(de.yylloc={});var ke=de.yylloc;H.push(ke);var we=de.options&&de.options.ranges;typeof Se.yy.parseError=="function"?this.parseError=Se.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(z){V.length=V.length-2*z,Q.length=Q.length-z,H.length=H.length-z}o(_e,"popStack");function $e(){var z;return z=X.pop()||de.lex()||Z,typeof z!="number"&&(z instanceof Array&&(X=z,z=X.pop()),z=$.symbols_[z]||z),z}o($e,"lex");for(var fe,Ke,Te,Be,Ue,Ge,Ne={},We,j,ae,U;;){if(Te=V[V.length-1],this.defaultActions[Te]?Be=this.defaultActions[Te]:((fe===null||typeof fe>"u")&&(fe=$e()),Be=ie[Te]&&ie[Te][fe]),typeof Be>"u"||!Be.length||!Be[0]){var ce="";U=[];for(We in ie[Te])this.terminals_[We]&&We>te&&U.push("'"+this.terminals_[We]+"'");de.showPosition?ce="Parse error on line "+(le+1)+`: +`+de.showPosition()+` +Expecting `+U.join(", ")+", got '"+(this.terminals_[fe]||fe)+"'":ce="Parse error on line "+(le+1)+": Unexpected "+(fe==Z?"end of input":"'"+(this.terminals_[fe]||fe)+"'"),this.parseError(ce,{text:de.match,token:this.terminals_[fe]||fe,line:de.yylineno,loc:ke,expected:U})}if(Be[0]instanceof Array&&Be.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Te+", token: "+fe);switch(Be[0]){case 1:V.push(fe),Q.push(de.yytext),H.push(de.yylloc),V.push(Be[1]),fe=null,Ke?(fe=Ke,Ke=null):(ee=de.yyleng,Y=de.yytext,le=de.yylineno,ke=de.yylloc,J>0&&J--);break;case 2:if(j=this.productions_[Be[1]][1],Ne.$=Q[Q.length-j],Ne._$={first_line:H[H.length-(j||1)].first_line,last_line:H[H.length-1].last_line,first_column:H[H.length-(j||1)].first_column,last_column:H[H.length-1].last_column},we&&(Ne._$.range=[H[H.length-(j||1)].range[0],H[H.length-1].range[1]]),Ge=this.performAction.apply(Ne,[Y,ee,le,Se.yy,Be[1],Q,H].concat(xe)),typeof Ge<"u")return Ge;j&&(V=V.slice(0,-1*j*2),Q=Q.slice(0,-1*j),H=H.slice(0,-1*j)),V.push(this.productions_[Be[1]][0]),Q.push(Ne.$),H.push(Ne._$),ae=ie[V[V.length-2]][V[V.length-1]],V.push(ae);break;case 3:return!0}}return!0},"parse")},P=(function(){var F={EOF:1,parseError:o(function($,V){if(this.yy.parser)this.yy.parser.parseError($,V);else throw new Error($)},"parseError"),setInput:o(function(G,$){return this.yy=$||this.yy||{},this._input=G,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var G=this._input[0];this.yytext+=G,this.yyleng++,this.offset++,this.match+=G,this.matched+=G;var $=G.match(/(?:\r\n?|\n).*/g);return $?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),G},"input"),unput:o(function(G){var $=G.length,V=G.split(/(?:\r\n?|\n)/g);this._input=G+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-$),this.offset-=$;var X=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),V.length-1&&(this.yylineno-=V.length-1);var Q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:V?(V.length===X.length?this.yylloc.first_column:0)+X[X.length-V.length].length-V[0].length:this.yylloc.first_column-$},this.options.ranges&&(this.yylloc.range=[Q[0],Q[0]+this.yyleng-$]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(G){this.unput(this.match.slice(G))},"less"),pastInput:o(function(){var G=this.matched.substr(0,this.matched.length-this.match.length);return(G.length>20?"...":"")+G.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var G=this.match;return G.length<20&&(G+=this._input.substr(0,20-G.length)),(G.substr(0,20)+(G.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var G=this.pastInput(),$=new Array(G.length+1).join("-");return G+this.upcomingInput()+` +`+$+"^"},"showPosition"),test_match:o(function(G,$){var V,X,Q;if(this.options.backtrack_lexer&&(Q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Q.yylloc.range=this.yylloc.range.slice(0))),X=G[0].match(/(?:\r\n?|\n).*/g),X&&(this.yylineno+=X.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:X?X[X.length-1].length-X[X.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+G[0].length},this.yytext+=G[0],this.match+=G[0],this.matches=G,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(G[0].length),this.matched+=G[0],V=this.performAction.call(this,this.yy,this,$,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),V)return V;if(this._backtrack){for(var H in Q)this[H]=Q[H];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var G,$,V,X;this._more||(this.yytext="",this.match="");for(var Q=this._currentRules(),H=0;H$[0].length)){if($=V,X=H,this.options.backtrack_lexer){if(G=this.test_match(V,Q[H]),G!==!1)return G;if(this._backtrack){$=!1;continue}else return!1}else if(!this.options.flex)break}return $?(G=this.test_match($,Q[X]),G!==!1?G:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var $=this.next();return $||this.lex()},"lex"),begin:o(function($){this.conditionStack.push($)},"begin"),popState:o(function(){var $=this.conditionStack.length-1;return $>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function($){return $=this.conditionStack.length-1-Math.abs($||0),$>=0?this.conditionStack[$]:"INITIAL"},"topState"),pushState:o(function($){this.begin($)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function($,V,X,Q){var H=Q;switch(X){case 0:return 38;case 1:return 40;case 2:return 39;case 3:return 44;case 4:return 51;case 5:return 52;case 6:return 53;case 7:return 54;case 8:break;case 9:break;case 10:return 5;case 11:break;case 12:break;case 13:break;case 14:break;case 15:return this.pushState("SCALE"),17;break;case 16:return 18;case 17:this.popState();break;case 18:return this.begin("acc_title"),33;break;case 19:return this.popState(),"acc_title_value";break;case 20:return this.begin("acc_descr"),35;break;case 21:return this.popState(),"acc_descr_value";break;case 22:this.begin("acc_descr_multiline");break;case 23:this.popState();break;case 24:return"acc_descr_multiline_value";case 25:return this.pushState("CLASSDEF"),41;break;case 26:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 27:return this.popState(),this.pushState("CLASSDEFID"),42;break;case 28:return this.popState(),43;break;case 29:return this.pushState("CLASS"),48;break;case 30:return this.popState(),this.pushState("CLASS_STYLE"),49;break;case 31:return this.popState(),50;break;case 32:return this.pushState("STYLE"),45;break;case 33:return this.popState(),this.pushState("STYLEDEF_STYLES"),46;break;case 34:return this.popState(),47;break;case 35:return this.pushState("SCALE"),17;break;case 36:return 18;case 37:this.popState();break;case 38:this.pushState("STATE");break;case 39:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),V.yytext=V.yytext.slice(0,-10).trim(),27;break;case 42:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),25;break;case 43:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),26;break;case 44:return this.popState(),V.yytext=V.yytext.slice(0,-10).trim(),27;break;case 45:return 51;case 46:return 52;case 47:return 53;case 48:return 54;case 49:this.pushState("STATE_STRING");break;case 50:return this.pushState("STATE_ID"),"AS";break;case 51:return this.popState(),"ID";break;case 52:this.popState();break;case 53:return"STATE_DESCR";case 54:return 19;case 55:this.popState();break;case 56:return this.popState(),this.pushState("struct"),20;break;case 57:break;case 58:return this.popState(),21;break;case 59:break;case 60:return this.begin("NOTE"),29;break;case 61:return this.popState(),this.pushState("NOTE_ID"),59;break;case 62:return this.popState(),this.pushState("NOTE_ID"),60;break;case 63:this.popState(),this.pushState("FLOATING_NOTE");break;case 64:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 65:break;case 66:return"NOTE_TEXT";case 67:return this.popState(),"ID";break;case 68:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 69:return this.popState(),V.yytext=V.yytext.substr(2).trim(),31;break;case 70:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),31;break;case 71:return 6;case 72:return 6;case 73:return 16;case 74:return 57;case 75:return 24;case 76:return V.yytext=V.yytext.trim(),14;break;case 77:return 15;case 78:return 28;case 79:return 58;case 80:return 5;case 81:return"INVALID"}},"anonymous"),rules:[/^(?:click\b)/i,/^(?:href\b)/i,/^(?:"[^"]*")/i,/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:(?:[^:\n;]|:[^:\n;])+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[12,13],inclusive:!1},struct:{rules:[12,13,25,29,32,38,45,46,47,48,57,58,59,60,74,75,76,77,78],inclusive:!1},FLOATING_NOTE_ID:{rules:[67],inclusive:!1},FLOATING_NOTE:{rules:[64,65,66],inclusive:!1},NOTE_TEXT:{rules:[69,70],inclusive:!1},NOTE_ID:{rules:[68],inclusive:!1},NOTE:{rules:[61,62,63],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[34],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[33],inclusive:!1},CLASS_STYLE:{rules:[31],inclusive:!1},CLASS:{rules:[30],inclusive:!1},CLASSDEFID:{rules:[28],inclusive:!1},CLASSDEF:{rules:[26,27],inclusive:!1},acc_descr_multiline:{rules:[23,24],inclusive:!1},acc_descr:{rules:[21],inclusive:!1},acc_title:{rules:[19],inclusive:!1},SCALE:{rules:[16,17,36,37],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[51],inclusive:!1},STATE_STRING:{rules:[52,53],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[12,13,39,40,41,42,43,44,49,50,54,55,56],inclusive:!1},ID:{rules:[12,13],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,18,20,22,25,29,32,35,38,56,60,71,72,73,74,75,76,77,79,80,81],inclusive:!0}}};return F})();R.lexer=P;function B(){this.yy={}}return o(B,"Parser"),B.prototype=R,R.Parser=B,new B})();fU.parser=fU;X7=fU});var yp,Qm,v3,i5e,a5e,s5e,Zm,K7,pU,mU,gU,yU,Q7,Z7,o5e,l5e,vU,xU,c5e,u5e,$v,Wct,h5e,bU,Hct,Yct,f5e,d5e,jct,p5e,Xct,m5e,TU,wU,g5e,J7,y5e,kU,e_=O(()=>{"use strict";yp="state",Qm="root",v3="relation",i5e="classDef",a5e="style",s5e="applyClass",Zm="default",K7="divider",pU="fill:none",mU="fill: #333",gU="markdown",yU="normal",Q7="rect",Z7="rectWithTitle",o5e="stateStart",l5e="stateEnd",vU="divider",xU="roundedWithTitle",c5e="note",u5e="noteGroup",$v="statediagram",Wct="state",h5e=`${$v}-${Wct}`,bU="transition",Hct="note",Yct="note-edge",f5e=`${bU} ${Yct}`,d5e=`${$v}-${Hct}`,jct="cluster",p5e=`${$v}-${jct}`,Xct="cluster-alt",m5e=`${$v}-${Xct}`,TU="parent",wU="note",g5e="state",J7="----",y5e=`${J7}${wU}`,kU=`${J7}${TU}`});function EU(t="",e=0,r="",n=J7){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${g5e}-${t}${i}-${e}`}function t_(t,e,r){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{let a=r.get(i);a&&(e.cssCompiledStyles=[...e.cssCompiledStyles??[],...a.styles])}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function Qct(t){return t?.classes?.join(" ")??""}function Zct(t){return t?.styles??[]}var r_,vp,Kct,v5e,zv,b5e,T5e=O(()=>{"use strict";jt();xt();Ur();e_();r_=new Map,vp=0;o(EU,"stateDomId");Kct=o((t,e,r,n,i,a,s,l)=>{K.trace("items",e),e.forEach(u=>{switch(u.stmt){case yp:zv(t,u,r,n,i,a,s,l);break;case Zm:zv(t,u,r,n,i,a,s,l);break;case v3:{zv(t,u.state1,r,n,i,a,s,l),zv(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+vp,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:pU,labelStyle:"",label:st.sanitizeText(u.description??"",ve()),arrowheadStyle:mU,labelpos:"c",labelType:gU,thickness:yU,classes:bU,look:s};i.push(h),vp++}break}})},"setupDoc"),v5e=o((t,e="TB")=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(t_,"insertOrUpdateNode");o(Qct,"getClassesFromDbInfo");o(Zct,"getStylesFromDbInfo");zv=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=Qct(h),d=Zct(h),p=ve();if(K.info("dataFetcher parsedItem",e,h,d),u!=="root"){let m=Q7;e.start===!0?m=o5e:e.start===!1&&(m=l5e),e.type!==Zm&&(m=e.type),r_.get(u)||r_.set(u,{id:u,shape:m,description:st.sanitizeText(u,p),cssClasses:`${f} ${h5e}`,cssStyles:d});let g=r_.get(u);e.description&&(Array.isArray(g.description)?(g.shape=Z7,g.description.push(e.description)):g.description?.length&&g.description.length>0?(g.shape=Z7,g.description===u?g.description=[e.description]:g.description=[g.description,e.description]):(g.shape=Q7,g.description=e.description),g.description=st.sanitizeTextOrArray(g.description,p)),g.description?.length===1&&g.shape===Z7&&(g.type==="group"?g.shape=xU:g.shape=Q7),!g.type&&e.doc&&(K.info("Setting cluster for XCX",u,v5e(e)),g.type="group",g.isGroup=!0,g.dir=v5e(e),g.shape=e.type===K7?vU:xU,g.cssClasses=`${g.cssClasses} ${p5e} ${a?m5e:""}`);let y={labelStyle:"",shape:g.shape,label:g.description,cssClasses:g.cssClasses,cssCompiledStyles:[],cssStyles:g.cssStyles,id:u,dir:g.dir,domId:EU(u,vp),type:g.type,isGroup:g.type==="group",padding:8,rx:10,ry:10,look:s,labelType:"markdown"};if(y.shape===vU&&(y.label=""),t&&t.id!=="root"&&(K.trace("Setting node ",u," to be child of its parent ",t.id),y.parentId=t.id),y.centerLabel=!0,e.note){let v={labelStyle:"",shape:c5e,label:e.note.text,labelType:"markdown",cssClasses:d5e,cssStyles:[],cssCompiledStyles:[],id:u+y5e+"-"+vp,domId:EU(u,vp,wU),type:g.type,isGroup:g.type==="group",padding:p.flowchart?.padding,look:s,position:e.note.position},x=u+kU,b={labelStyle:"",shape:u5e,label:e.note.text,cssClasses:g.cssClasses,cssStyles:[],id:u+kU,domId:EU(u,vp,TU),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};vp++,b.id=x,v.parentId=x,t_(n,b,l),t_(n,v,l),t_(n,y,l);let T=u,E=v.id;e.note.position==="left of"&&(T=v.id,E=u),i.push({id:T+"-"+E,start:T,end:E,arrowhead:"none",arrowTypeEnd:"",style:pU,labelStyle:"",classes:f5e,arrowheadStyle:mU,labelpos:"c",labelType:gU,thickness:yU,look:s})}else t_(n,y,l)}e.doc&&(K.trace("Adding nodes children "),Kct(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),b5e=o(()=>{r_.clear(),vp=0},"reset")});var CU,Jct,eut,w5e,AU=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();e_();CU=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),Jct=o(function(t,e){return e.db.getClasses()},"getClasses"),eut=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=ve();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await Ol(l,u);let h=8;try{(typeof n.db.getLinks=="function"?n.db.getLinks():new Map).forEach((d,p)=>{let m=typeof p=="string"?p:typeof p?.id=="string"?p.id:"";if(!m){K.warn("\u26A0\uFE0F Invalid or missing stateId from key:",JSON.stringify(p));return}let g=u.node()?.querySelectorAll("g"),y;if(g?.forEach(T=>{T.textContent?.trim()===m&&(y=T)}),!y){K.warn("\u26A0\uFE0F Could not find node matching text:",m);return}let v=y.parentNode;if(!v){K.warn("\u26A0\uFE0F Node has no parent, cannot wrap:",m);return}let x=document.createElementNS("http://www.w3.org/2000/svg","a"),b=d.url.replace(/^"+|"+$/g,"");if(x.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",b),x.setAttribute("target","_blank"),d.tooltip){let T=d.tooltip.replace(/^"+|"+$/g,"");x.setAttribute("title",T)}v.replaceChild(x,y),x.appendChild(y),K.info("\u{1F517} Wrapped node in
    tag for:",m,d.url)})}catch(f){K.error("\u274C Error injecting clickable links:",f)}Xt.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,h,$v,a?.useMaxWidth??!0)},"draw"),w5e={getClasses:Jct,draw:eut,getDir:CU}});var Hs,E5e,S5e,n_,Wl,i_=O(()=>{"use strict";jt();xt();ar();Ur();si();T5e();AU();e_();Hs={START_NODE:"[*]",START_TYPE:"start",END_NODE:"[*]",END_TYPE:"end",COLOR_KEYWORD:"color",FILL_KEYWORD:"fill",BG_FILL:"bgFill",STYLECLASS_SEP:","},E5e=o(()=>new Map,"newClassesList"),S5e=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),n_=o(t=>JSON.parse(JSON.stringify(t)),"clone"),Wl=class{constructor(e){this.version=e;this.nodes=[];this.edges=[];this.rootDoc=[];this.classes=E5e();this.documents={root:S5e()};this.currentDocument=this.documents.root;this.startEndCount=0;this.dividerCnt=0;this.links=new Map;this.getAccTitle=Or;this.setAccTitle=Lr;this.getAccDescription=Br;this.setAccDescription=Pr;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.clear(),this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}static{o(this,"StateDB")}static{this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}}extract(e){this.clear(!0);for(let i of Array.isArray(e)?e:e.doc)switch(i.stmt){case yp:this.addState(i.id.trim(),i.type,i.doc,i.description,i.note);break;case v3:this.addRelation(i.state1,i.state2,i.description);break;case i5e:this.addStyleClass(i.id.trim(),i.classes);break;case a5e:this.handleStyleDef(i);break;case s5e:this.setCssClass(i.id.trim(),i.styleClass);break;case"click":this.addLink(i.id,i.url,i.tooltip);break}let r=this.getStates(),n=ve();b5e(),zv(void 0,this.getRootDocV2(),r,this.nodes,this.edges,!0,n.look,this.classes);for(let i of this.nodes)if(Array.isArray(i.label)){if(i.description=i.label.slice(1),i.isGroup&&i.description.length>0)throw new Error(`Group nodes can only have label. Remove the additional description for node [${i.id}]`);i.label=i.label[0]}}handleStyleDef(e){let r=e.id.trim().split(","),n=e.styleClass.split(",");for(let i of r){let a=this.getState(i);if(!a){let s=i.trim();this.addState(s),a=this.getState(s)}a&&(a.styles=n.map(s=>s.replace(/;/g,"")?.trim()))}}setRootDoc(e){K.info("Setting root doc",e),this.rootDoc=e,this.version===1?this.extract(e):this.extract(this.getRootDocV2())}docTranslator(e,r,n){if(r.stmt===v3){this.docTranslator(e,r.state1,!0),this.docTranslator(e,r.state2,!1);return}if(r.stmt===yp&&(r.id===Hs.START_NODE?(r.id=e.id+(n?"_start":"_end"),r.start=n):r.id=r.id.trim()),r.stmt!==Qm&&r.stmt!==yp||!r.doc)return;let i=[],a=[];for(let s of r.doc)if(s.type===K7){let l=n_(s);l.doc=n_(a),i.push(l),a=[]}else a.push(s);if(i.length>0&&a.length>0){let s={stmt:yp,id:LN(),type:"divider",doc:n_(a)};i.push(n_(s)),r.doc=i}r.doc.forEach(s=>this.docTranslator(r,s,!0))}getRootDocV2(){return this.docTranslator({id:Qm,stmt:Qm},{id:Qm,stmt:Qm,doc:this.rootDoc},!0),{id:Qm,doc:this.rootDoc}}addState(e,r=Zm,n=void 0,i=void 0,a=void 0,s=void 0,l=void 0,u=void 0){let h=e?.trim();if(!this.currentDocument.states.has(h))K.info("Adding state ",h,i),this.currentDocument.states.set(h,{stmt:yp,id:h,descriptions:[],type:r,doc:n,note:a,classes:[],styles:[],textStyles:[]});else{let f=this.currentDocument.states.get(h);if(!f)throw new Error(`State not found: ${h}`);f.doc||(f.doc=n),f.type||(f.type=r)}if(i&&(K.info("Setting state description",h,i),(Array.isArray(i)?i:[i]).forEach(d=>this.addDescription(h,d.trim()))),a){let f=this.currentDocument.states.get(h);if(!f)throw new Error(`State not found: ${h}`);f.note=a,f.note.text=st.sanitizeText(f.note.text,ve())}s&&(K.info("Setting state classes",h,s),(Array.isArray(s)?s:[s]).forEach(d=>this.setCssClass(h,d.trim()))),l&&(K.info("Setting state styles",h,l),(Array.isArray(l)?l:[l]).forEach(d=>this.setStyle(h,d.trim()))),u&&(K.info("Setting state styles",h,l),(Array.isArray(u)?u:[u]).forEach(d=>this.setTextStyle(h,d.trim())))}clear(e){this.nodes=[],this.edges=[],this.documents={root:S5e()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=E5e(),e||(this.links=new Map,_r())}getState(e){return this.currentDocument.states.get(e)}getStates(){return this.currentDocument.states}logDocuments(){K.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}addLink(e,r,n){this.links.set(e,{url:r,tooltip:n}),K.warn("Adding link",e,r,n)}getLinks(){return this.links}startIdIfNeeded(e=""){return e===Hs.START_NODE?(this.startEndCount++,`${Hs.START_TYPE}${this.startEndCount}`):e}startTypeIfNeeded(e="",r=Zm){return e===Hs.START_NODE?Hs.START_TYPE:r}endIdIfNeeded(e=""){return e===Hs.END_NODE?(this.startEndCount++,`${Hs.END_TYPE}${this.startEndCount}`):e}endTypeIfNeeded(e="",r=Zm){return e===Hs.END_NODE?Hs.END_TYPE:r}addRelationObjs(e,r,n=""){let i=this.startIdIfNeeded(e.id.trim()),a=this.startTypeIfNeeded(e.id.trim(),e.type),s=this.startIdIfNeeded(r.id.trim()),l=this.startTypeIfNeeded(r.id.trim(),r.type);this.addState(i,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),this.addState(s,l,r.doc,r.description,r.note,r.classes,r.styles,r.textStyles),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:st.sanitizeText(n,ve())})}addRelation(e,r,n){if(typeof e=="object"&&typeof r=="object")this.addRelationObjs(e,r,n);else if(typeof e=="string"&&typeof r=="string"){let i=this.startIdIfNeeded(e.trim()),a=this.startTypeIfNeeded(e),s=this.endIdIfNeeded(r.trim()),l=this.endTypeIfNeeded(r);this.addState(i,a),this.addState(s,l),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:n?st.sanitizeText(n,ve()):void 0})}}addDescription(e,r){let n=this.currentDocument.states.get(e),i=r.startsWith(":")?r.replace(":","").trim():r;n?.descriptions?.push(st.sanitizeText(i,ve()))}cleanupLabel(e){return e.startsWith(":")?e.slice(2).trim():e.trim()}getDividerId(){return this.dividerCnt++,`divider-id-${this.dividerCnt}`}addStyleClass(e,r=""){this.classes.has(e)||this.classes.set(e,{id:e,styles:[],textStyles:[]});let n=this.classes.get(e);r&&n&&r.split(Hs.STYLECLASS_SEP).forEach(i=>{let a=i.replace(/([^;]*);/,"$1").trim();if(RegExp(Hs.COLOR_KEYWORD).exec(i)){let l=a.replace(Hs.FILL_KEYWORD,Hs.BG_FILL).replace(Hs.COLOR_KEYWORD,Hs.FILL_KEYWORD);n.textStyles.push(l)}n.styles.push(a)})}getClasses(){return this.classes}setCssClass(e,r){e.split(",").forEach(n=>{let i=this.getState(n);if(!i){let a=n.trim();this.addState(a),i=this.getState(a)}i?.classes?.push(r)})}setStyle(e,r){this.getState(e)?.styles?.push(r)}setTextStyle(e,r){this.getState(e)?.textStyles?.push(r)}getDirectionStatement(){return this.rootDoc.find(e=>e.stmt==="dir")}getDirection(){return this.getDirectionStatement()?.value??"TB"}setDirection(e){let r=this.getDirectionStatement();r?r.value=e:this.rootDoc.unshift({stmt:"dir",value:e})}trimColon(e){return e.startsWith(":")?e.slice(1).trim():e.trim()}getData(){let e=ve();return{nodes:this.nodes,edges:this.edges,other:{},config:e,direction:CU(this.getRootDocV2())}}getConfig(){return ve().state}}});var rut,a_,_U=O(()=>{"use strict";rut=o(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),a_=rut});var nut,iut,aut,sut,A5e,out,lut,cut,uut,DU,C5e,_5e,D5e=O(()=>{"use strict";Ar();i_();ar();Ur();jt();xt();nut=o(t=>t.append("circle").attr("class","start-state").attr("r",ve().state.sizeUnit).attr("cx",ve().state.padding+ve().state.sizeUnit).attr("cy",ve().state.padding+ve().state.sizeUnit),"drawStartState"),iut=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",ve().state.textHeight).attr("class","divider").attr("x2",ve().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),aut=o((t,e)=>{let r=t.append("text").attr("x",2*ve().state.padding).attr("y",ve().state.textHeight+2*ve().state.padding).attr("font-size",ve().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",ve().state.padding).attr("y",ve().state.padding).attr("width",n.width+2*ve().state.padding).attr("height",n.height+2*ve().state.padding).attr("rx",ve().state.radius),r},"drawSimpleState"),sut=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*ve().state.padding).text(m);g||y.attr("dy",ve().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*ve().state.padding).attr("y",ve().state.textHeight+1.3*ve().state.padding).attr("font-size",ve().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",ve().state.padding).attr("y",a+ve().state.padding*.4+ve().state.dividerMargin+ve().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",ve().state.padding).attr("y1",ve().state.padding+a+ve().state.dividerMargin/2).attr("y2",ve().state.padding+a+ve().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*ve().state.padding),t.insert("rect",":first-child").attr("x",ve().state.padding).attr("y",ve().state.padding).attr("width",d+2*ve().state.padding).attr("height",f.height+a+2*ve().state.padding).attr("rx",ve().state.radius),t},"drawDescrState"),A5e=o((t,e,r)=>{let n=ve().state.padding,i=2*ve().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",ve().state.titleShift).attr("font-size",ve().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-ve().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+ve().state.textHeight+ve().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",ve().state.titleShift-ve().state.textHeight-ve().state.padding).attr("width",d).attr("height",ve().state.textHeight*3).attr("rx",ve().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",ve().state.titleShift-ve().state.textHeight-ve().state.padding).attr("width",d).attr("height",m.height+3+2*ve().state.textHeight).attr("rx",ve().state.radius),t},"addTitleAndBox"),out=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",ve().state.sizeUnit+ve().state.miniPadding).attr("cx",ve().state.padding+ve().state.sizeUnit+ve().state.miniPadding).attr("cy",ve().state.padding+ve().state.sizeUnit+ve().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",ve().state.sizeUnit).attr("cx",ve().state.padding+ve().state.sizeUnit+2).attr("cy",ve().state.padding+ve().state.sizeUnit+2)),"drawEndState"),lut=o((t,e)=>{let r=ve().state.forkWidth,n=ve().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",ve().state.padding).attr("y",ve().state.padding)},"drawForkJoinState"),cut=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(st.lineBreakRegex),u=1.25*ve().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+ve().state.noteMargin),d.attr("y",r+i+1.25*ve().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),uut=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",ve().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=cut(t,0,0,n);return r.attr("height",a+2*ve().state.noteMargin),r.attr("width",i+ve().state.noteMargin*2),r},"drawNote"),DU=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&nut(i),e.type==="end"&&out(i),(e.type==="fork"||e.type==="join")&&lut(i,e),e.type==="note"&&uut(e.note.text,i),e.type==="divider"&&iut(i),e.type==="default"&&e.descriptions.length===0&&aut(i,e),e.type==="default"&&e.descriptions.length>0&&sut(i,e);let a=i.node().getBBox();return n.width=a.width+2*ve().state.padding,n.height=a.height+2*ve().state.padding,n},"drawState"),C5e=0,_5e=o(function(t,e,r){let n=o(function(u){switch(u){case Wl.relationType.AGGREGATION:return"aggregation";case Wl.relationType.EXTENSION:return"extension";case Wl.relationType.COMPOSITION:return"composition";case Wl.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=hc().x(function(u){return u.x}).y(function(u){return u.y}).curve(fc),s=t.append("path").attr("d",a(i)).attr("id","edge"+C5e).attr("class","transition"),l="";if(ve().state.arrowMarkerAbsolute&&(l=Op(!0)),s.attr("marker-end","url("+l+"#"+n(Wl.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=Xt.calcLabelPosition(e.points),d=st.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let T=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),E=T.node().getBBox();g=Math.max(g,E.width),y=Math.min(y,E.x),K.info(E.x,h,f+p),p===0&&(p=T.node().getBBox().height,K.info("Title height",p,f)),m.push(T)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((T,E)=>T.attr("y",f+E*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-ve().state.padding/2).attr("y",f-v/2-ve().state.padding/2-3.5).attr("width",g+ve().state.padding).attr("height",v+ve().state.padding),K.info(x)}C5e++},"drawEdge")});var al,RU,hut,fut,dut,put,R5e,L5e,N5e=O(()=>{"use strict";Ar();rO();Dl();xt();Ur();D5e();jt();Ti();RU={},hut=o(function(){},"setConf"),fut=o(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),dut=o(function(t,e,r,n){al=ve().state;let i=ve().securityLevel,a;i==="sandbox"&&(a=je("#i"+e));let s=i==="sandbox"?je(a.nodes()[0].contentDocument.body):je("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;K.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);fut(u);let h=n.db.getRootDoc();R5e(h,u,void 0,!1,s,l,n);let f=al.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;Zr(u,m,g,al.useMaxWidth),u.attr("viewBox",`${d.x-al.padding} ${d.y-al.padding} `+p+" "+m)},"draw"),put=o(t=>t?t.length*al.fontSizeFactor:1,"getLabelWidth"),R5e=o((t,e,r,n,i,a,s)=>{let l=new wn({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let w=E.parentElement,k=0,S=0;w&&(w.parentElement&&(k=w.parentElement.getBBox().width),S=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(S)&&(S=0)),E.setAttribute("x1",0-S+8),E.setAttribute("x2",k-S-8)})):K.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(K.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),_5e(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*al.padding,x.height=v.height+2*al.padding,K.debug("Doc rendered",x,l),x},"renderDoc"),L5e={setConf:hut,draw:dut}});var M5e={};vr(M5e,{diagram:()=>mut});var mut,I5e=O(()=>{"use strict";dU();i_();_U();N5e();mut={parser:X7,get db(){return new Wl(1)},renderer:L5e,styles:a_,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var B5e={};vr(B5e,{diagram:()=>xut});var xut,F5e=O(()=>{"use strict";dU();i_();_U();AU();xut={parser:X7,get db(){return new Wl(2)},renderer:w5e,styles:a_,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var LU,G5e,V5e=O(()=>{"use strict";LU=(function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var T=x.length-1;switch(v){case 1:return x[T-1];case 2:this.$=[];break;case 3:x[T-1].push(x[T]),this.$=x[T-1];break;case 4:case 5:this.$=x[T];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[T].substr(6)),this.$=x[T].substr(6);break;case 9:this.$=x[T].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[T].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[T].substr(8)),this.$=x[T].substr(8);break;case 13:y.addTask(x[T-1],x[T]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,T="",E=0,w=0,k=0,S=2,A=1,L=x.slice.call(arguments,1),I=Object.create(this.lexer),N={yy:{}};for(var C in this.yy)Object.prototype.hasOwnProperty.call(this.yy,C)&&(N.yy[C]=this.yy[C]);I.setInput(p,N.yy),N.yy.lexer=I,N.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var _=I.yylloc;x.push(_);var D=I.options&&I.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function M(ee){g.length=g.length-2*ee,v.length=v.length-ee,x.length=x.length-ee}o(M,"popStack");function R(){var ee;return ee=y.pop()||I.lex()||A,typeof ee!="number"&&(ee instanceof Array&&(y=ee,ee=y.pop()),ee=m.symbols_[ee]||ee),ee}o(R,"lex");for(var P,B,F,G,$,V,X={},Q,H,ie,Y;;){if(F=g[g.length-1],this.defaultActions[F]?G=this.defaultActions[F]:((P===null||typeof P>"u")&&(P=R()),G=b[F]&&b[F][P]),typeof G>"u"||!G.length||!G[0]){var le="";Y=[];for(Q in b[F])this.terminals_[Q]&&Q>S&&Y.push("'"+this.terminals_[Q]+"'");I.showPosition?le="Parse error on line "+(E+1)+`: +`+I.showPosition()+` +Expecting `+Y.join(", ")+", got '"+(this.terminals_[P]||P)+"'":le="Parse error on line "+(E+1)+": Unexpected "+(P==A?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(le,{text:I.match,token:this.terminals_[P]||P,line:I.yylineno,loc:_,expected:Y})}if(G[0]instanceof Array&&G.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+P);switch(G[0]){case 1:g.push(P),v.push(I.yytext),x.push(I.yylloc),g.push(G[1]),P=null,B?(P=B,B=null):(w=I.yyleng,T=I.yytext,E=I.yylineno,_=I.yylloc,k>0&&k--);break;case 2:if(H=this.productions_[G[1]][1],X.$=v[v.length-H],X._$={first_line:x[x.length-(H||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(H||1)].first_column,last_column:x[x.length-1].last_column},D&&(X._$.range=[x[x.length-(H||1)].range[0],x[x.length-1].range[1]]),V=this.performAction.apply(X,[T,w,E,N.yy,G[1],v,x].concat(L)),typeof V<"u")return V;H&&(g=g.slice(0,-1*H*2),v=v.slice(0,-1*H),x=x.slice(0,-1*H)),g.push(this.productions_[G[1]][0]),v.push(X.$),x.push(X._$),ie=b[g[g.length-2]][g[g.length-1]],g.push(ie);break;case 3:return!0}}return!0},"parse")},h=(function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d})();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f})();LU.parser=LU;G5e=LU});var Gv,NU,x3,b3,kut,Eut,Sut,Cut,Aut,_ut,Dut,q5e,Rut,MU,U5e=O(()=>{"use strict";jt();si();Gv="",NU=[],x3=[],b3=[],kut=o(function(){NU.length=0,x3.length=0,Gv="",b3.length=0,_r()},"clear"),Eut=o(function(t){Gv=t,NU.push(t)},"addSection"),Sut=o(function(){return NU},"getSections"),Cut=o(function(){let t=q5e(),e=100,r=0;for(;!t&&r{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),_ut=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:Gv,type:Gv,people:a,task:t,score:n};b3.push(s)},"addTask"),Dut=o(function(t){let e={section:Gv,type:Gv,description:t,task:t,classes:[]};x3.push(e)},"addTaskOrg"),q5e=o(function(){let t=o(function(r){return b3[r].processed},"compileTask"),e=!0;for(let[r,n]of b3.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Rut=o(function(){return Aut()},"getActors"),MU={getConfig:o(()=>ve().journey,"getConfig"),clear:kut,setDiagramTitle:zr,getDiagramTitle:Fr,setAccTitle:Lr,getAccTitle:Or,setAccDescription:Pr,getAccDescription:Br,addSection:Eut,getSections:Sut,getTasks:Cut,addTask:_ut,addTaskOrg:Dut,getActors:Rut}});var Lut,W5e,H5e=O(()=>{"use strict";ly();Lut=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + font-family: ${t.fontFamily}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } + ${Lu()} +`,"getStyles"),W5e=Lut});var IU,Nut,j5e,X5e,Mut,Iut,Y5e,Out,Put,K5e,But,Vv,Q5e=O(()=>{"use strict";Ar();a0();IU=o(function(t,e){return i0(t,e)},"drawRect"),Nut=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=uc().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=uc().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),j5e=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),X5e=o(function(t,e){return Gee(t,e)},"drawText"),Mut=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,X5e(t,e)},"drawLabel"),Iut=o(function(t,e,r){let n=t.append("g"),i=Oa();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,IU(n,i),K5e(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),Y5e=-1,Out=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");Y5e++,i.append("line").attr("id","task"+Y5e).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Nut(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=Oa();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,IU(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};j5e(i,f),l+=10}),K5e(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),Put=o(function(t,e){nk(t,e)},"drawBackgroundRect"),K5e=(function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let a=cf[i].color,s={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:cf[i].position};Vv.drawCircle(t,s);let l=t.append("text").attr("visibility","hidden").text(i),u=l.node().getBoundingClientRect().width;l.remove();let h=[];if(u<=r)h=[i];else{let f=i.split(" "),d="";l=t.append("text").attr("visibility","hidden"),f.forEach(p=>{let m=d?`${d} ${p}`:p;if(l.text(m),l.node().getBoundingClientRect().width>r){if(d&&h.push(d),d=p,l.text(p),l.node().getBoundingClientRect().width>r){let y="";for(let v of p)y+=v,l.text(y+"-"),l.node().getBoundingClientRect().width>r&&(h.push(y.slice(0,-1)+"-"),y=v);d=y}}else d=m}),d&&h.push(d),l.remove()}h.forEach((f,d)=>{let p={x:40,y:n+7+d*20,fill:"#666",text:f,textMargin:e.boxTextMargin??5},g=Vv.drawText(t,p).node().getBoundingClientRect().width;g>s_&&g>e.leftMargin-g&&(s_=g)}),n+=Math.max(20,h.length*20)})}var Fut,cf,s_,Pc,xp,zut,Hl,OU,Z5e,Gut,PU,J5e=O(()=>{"use strict";Ar();Q5e();jt();Ti();Fut=o(function(t){Object.keys(t).forEach(function(r){Pc[r]=t[r]})},"setConf"),cf={},s_=0;o($ut,"drawActorLegend");Pc=ve().journey,xp=0,zut=o(function(t,e,r,n){let i=ve(),a=i.journey.titleColor,s=i.journey.titleFontSize,l=i.journey.titleFontFamily,u=i.securityLevel,h;u==="sandbox"&&(h=je("#i"+e));let f=u==="sandbox"?je(h.nodes()[0].contentDocument.body):je("body");Hl.init();let d=f.select("#"+e);Vv.initGraphics(d);let p=n.db.getTasks(),m=n.db.getDiagramTitle(),g=n.db.getActors();for(let E in cf)delete cf[E];let y=0;g.forEach(E=>{cf[E]={color:Pc.actorColours[y%Pc.actorColours.length],position:y},y++}),$ut(d),xp=Pc.leftMargin+s_,Hl.insert(0,0,xp,Object.keys(cf).length*50),Gut(d,p,0);let v=Hl.getBounds();m&&d.append("text").text(m).attr("x",xp).attr("font-size",s).attr("font-weight","bold").attr("y",25).attr("fill",a).attr("font-family",l);let x=v.stopy-v.starty+2*Pc.diagramMarginY,b=xp+v.stopx+2*Pc.diagramMarginX;Zr(d,x,b,Pc.useMaxWidth),d.append("line").attr("x1",xp).attr("y1",Pc.height*4).attr("x2",b-xp-4).attr("y2",Pc.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let T=m?70:0;d.attr("viewBox",`${v.startx} -25 ${b} ${x+T}`),d.attr("preserveAspectRatio","xMinYMin meet"),d.attr("height",x+T+25)},"draw"),Hl={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=ve().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(Hl.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(Hl.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(Hl.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(Hl.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(Hl.data,"startx",i,Math.min),this.updateVal(Hl.data,"starty",s,Math.min),this.updateVal(Hl.data,"stopx",a,Math.max),this.updateVal(Hl.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},OU=Pc.sectionFills,Z5e=Pc.sectionColours,Gut=o(function(t,e,r){let n=ve().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=OU[l%OU.length],f=l%OU.length,h=Z5e[l%Z5e.length];let g=0,y=p.section;for(let x=d;x(cf[y]&&(g[y]=cf[y]),g),{});p.x=d*n.taskMargin+d*n.width+xp,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,Vv.drawTask(t,p,n),Hl.insert(p.x,p.y,p.x+p.width+n.taskMargin,450)}},"drawTasks"),PU={setConf:Fut,draw:zut}});var eke={};vr(eke,{diagram:()=>Vut});var Vut,tke=O(()=>{"use strict";V5e();U5e();H5e();J5e();Vut={parser:G5e,db:MU,renderer:PU,styles:W5e,init:o(t=>{PU.setConf(t.journey),MU.clear()},"init")}});var FU,lke,cke=O(()=>{"use strict";FU=(function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,T){var E=b.length-1;switch(x){case 1:return b[E-1];case 2:this.$=[];break;case 3:b[E-1].push(b[E]),this.$=b[E-1];break;case 4:case 5:this.$=b[E];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[E].substr(6)),this.$=b[E].substr(6);break;case 9:this.$=b[E].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[E].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[E].substr(8)),this.$=b[E].substr(8);break;case 15:v.addTask(b[E],0,""),this.$=b[E];break;case 16:v.addEvent(b[E].substr(2)),this.$=b[E];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],T=this.table,E="",w=0,k=0,S=0,A=2,L=1,I=b.slice.call(arguments,1),N=Object.create(this.lexer),C={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(C.yy[_]=this.yy[_]);N.setInput(m,C.yy),C.yy.lexer=N,C.yy.parser=this,typeof N.yylloc>"u"&&(N.yylloc={});var D=N.yylloc;b.push(D);var M=N.options&&N.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(J){y.length=y.length-2*J,x.length=x.length-J,b.length=b.length-J}o(R,"popStack");function P(){var J;return J=v.pop()||N.lex()||L,typeof J!="number"&&(J instanceof Array&&(v=J,J=v.pop()),J=g.symbols_[J]||J),J}o(P,"lex");for(var B,F,G,$,V,X,Q={},H,ie,Y,le;;){if(G=y[y.length-1],this.defaultActions[G]?$=this.defaultActions[G]:((B===null||typeof B>"u")&&(B=P()),$=T[G]&&T[G][B]),typeof $>"u"||!$.length||!$[0]){var ee="";le=[];for(H in T[G])this.terminals_[H]&&H>A&&le.push("'"+this.terminals_[H]+"'");N.showPosition?ee="Parse error on line "+(w+1)+`: +`+N.showPosition()+` +Expecting `+le.join(", ")+", got '"+(this.terminals_[B]||B)+"'":ee="Parse error on line "+(w+1)+": Unexpected "+(B==L?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(ee,{text:N.match,token:this.terminals_[B]||B,line:N.yylineno,loc:D,expected:le})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+B);switch($[0]){case 1:y.push(B),x.push(N.yytext),b.push(N.yylloc),y.push($[1]),B=null,F?(B=F,F=null):(k=N.yyleng,E=N.yytext,w=N.yylineno,D=N.yylloc,S>0&&S--);break;case 2:if(ie=this.productions_[$[1]][1],Q.$=x[x.length-ie],Q._$={first_line:b[b.length-(ie||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(ie||1)].first_column,last_column:b[b.length-1].last_column},M&&(Q._$.range=[b[b.length-(ie||1)].range[0],b[b.length-1].range[1]]),X=this.performAction.apply(Q,[E,k,w,C.yy,$[1],x,b].concat(I)),typeof X<"u")return X;ie&&(y=y.slice(0,-1*ie*2),x=x.slice(0,-1*ie),b=b.slice(0,-1*ie)),y.push(this.productions_[$[1]][0]),x.push(Q.$),b.push(Q._$),Y=T[y[y.length-2]][y[y.length-1]],y.push(Y);break;case 3:return!0}}return!0},"parse")},f=(function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p})();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d})();FU.parser=FU;lke=FU});var zU={};vr(zU,{addEvent:()=>vke,addSection:()=>pke,addTask:()=>yke,addTaskOrg:()=>xke,clear:()=>dke,default:()=>Qut,getCommonDb:()=>fke,getSections:()=>mke,getTasks:()=>gke});var qv,hke,$U,o_,Uv,fke,dke,pke,mke,gke,yke,vke,xke,uke,Qut,bke=O(()=>{"use strict";si();qv="",hke=0,$U=[],o_=[],Uv=[],fke=o(()=>$2,"getCommonDb"),dke=o(function(){$U.length=0,o_.length=0,qv="",Uv.length=0,_r()},"clear"),pke=o(function(t){qv=t,$U.push(t)},"addSection"),mke=o(function(){return $U},"getSections"),gke=o(function(){let t=uke(),e=100,r=0;for(;!t&&rr.id===hke-1).events.push(t)},"addEvent"),xke=o(function(t){let e={section:qv,type:qv,description:t,task:t,classes:[]};o_.push(e)},"addTaskOrg"),uke=o(function(){let t=o(function(r){return Uv[r].processed},"compileTask"),e=!0;for(let[r,n]of Uv.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Qut={clear:dke,getCommonDb:fke,addSection:pke,getSections:mke,getTasks:gke,addTask:yke,addTaskOrg:xke,addEvent:vke}});function Eke(t,e){t.each(function(){var r=je(this),n=r.text().split(/(\s+|
    )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;fe||i==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
    "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var Zut,l_,Jut,eht,wke,tht,rht,Tke,nht,iht,aht,GU,kke,sht,oht,lht,cht,bp,Ske=O(()=>{"use strict";Ar();Zut=12,l_=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),Jut=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=uc().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=uc().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),eht=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),wke=o(function(t,e){let r=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),tht=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,wke(t,e)},"drawLabel"),rht=o(function(t,e,r){let n=t.append("g"),i=GU();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,l_(n,i),kke(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),Tke=-1,nht=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");Tke++,i.append("line").attr("id","task"+Tke).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Jut(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=GU();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,l_(i,s),kke(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),iht=o(function(t,e){l_(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),aht=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),GU=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),kke=(function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";Ar();Ske();xt();jt();Ti();uht=o(function(t,e,r,n){let i=ve(),a=i.timeline?.leftMargin??50;K.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=je("#i"+e));let h=(s==="sandbox"?je(l.nodes()[0].contentDocument.body):je("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();K.debug("task",f),bp.initGraphics(h);let p=n.db.getSections();K.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let T=0,E=!0;p.forEach(function(L){let I={number:T,descr:L,section:T,width:150,padding:20,maxHeight:m},N=bp.getVirtualNodeHeight(h,I,i);K.debug("sectionHeight before draw",N),m=Math.max(m,N+20)});let w=0,k=0;K.debug("tasks.length",f.length);for(let[L,I]of f.entries()){let N={number:L,descr:I,section:I.section,width:150,padding:20,maxHeight:g},C=bp.getVirtualNodeHeight(h,N,i);K.debug("taskHeight before draw",C),g=Math.max(g,C+20),w=Math.max(w,I.events.length);let _=0;for(let D of I.events){let M={descr:D,section:I.section,number:I.section,width:150,padding:20,maxHeight:50};_+=bp.getVirtualNodeHeight(h,M,i)}I.events.length>0&&(_+=(I.events.length-1)*10),k=Math.max(k,_)}K.debug("maxSectionHeight before draw",m),K.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(L=>{let I=f.filter(D=>D.section===L),N={number:T,descr:L,section:T,width:200*Math.max(I.length,1)-50,padding:20,maxHeight:m};K.debug("sectionNode",N);let C=h.append("g"),_=bp.drawNode(C,N,T,i);K.debug("sectionNode output",_),C.attr("transform",`translate(${x}, ${v})`),b+=m+50,I.length>0&&Cke(h,I,T,x,b,g,i,w,k,m,!1),x+=200*Math.max(I.length,1),b=v,T++}):(E=!1,Cke(h,f,T,x,b,g,i,w,k,m,!0));let S=h.node().getBBox();K.debug("bounds",S),d&&h.append("text").text(d).attr("x",S.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=E?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",S.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),Kc(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),Cke=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};K.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=bp.drawNode(m,p,r,s).height;if(K.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+hht(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+100+u+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),hht=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};K.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=bp.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),Ake={setConf:o(()=>{},"setConf"),draw:uht}});var fht,dht,Dke,Rke=O(()=>{"use strict";Ys();fht=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${fht(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),Dke=dht});var Lke={};vr(Lke,{diagram:()=>pht});var pht,Nke=O(()=>{"use strict";cke();bke();_ke();Rke();pht={db:zU,renderer:Ake,parser:lke,styles:Dke}});var VU,Oke,Pke=O(()=>{"use strict";VU=(function(){var t=o(function(E,w,k,S){for(k=k||{},S=E.length;S--;k[E[S]]=w);return k},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(w,k,S,A,L,I,N){var C=I.length-1;switch(L){case 6:case 7:return A;case 8:A.getLogger().trace("Stop NL ");break;case 9:A.getLogger().trace("Stop EOF ");break;case 11:A.getLogger().trace("Stop NL2 ");break;case 12:A.getLogger().trace("Stop EOF2 ");break;case 15:A.getLogger().info("Node: ",I[C].id),A.addNode(I[C-1].length,I[C].id,I[C].descr,I[C].type);break;case 16:A.getLogger().trace("Icon: ",I[C]),A.decorateNode({icon:I[C]});break;case 17:case 21:A.decorateNode({class:I[C]});break;case 18:A.getLogger().trace("SPACELIST");break;case 19:A.getLogger().trace("Node: ",I[C].id),A.addNode(0,I[C].id,I[C].descr,I[C].type);break;case 20:A.decorateNode({icon:I[C]});break;case 25:A.getLogger().trace("node found ..",I[C-2]),this.$={id:I[C-1],descr:I[C-1],type:A.getType(I[C-2],I[C])};break;case 26:this.$={id:I[C],descr:I[C],type:A.nodeType.DEFAULT};break;case 27:A.getLogger().trace("node found ..",I[C-3]),this.$={id:I[C-3],descr:I[C-1],type:A.getType(I[C-2],I[C])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(w,k){if(k.recoverable)this.trace(w);else{var S=new Error(w);throw S.hash=k,S}},"parseError"),parse:o(function(w){var k=this,S=[0],A=[],L=[null],I=[],N=this.table,C="",_=0,D=0,M=0,R=2,P=1,B=I.slice.call(arguments,1),F=Object.create(this.lexer),G={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(G.yy[$]=this.yy[$]);F.setInput(w,G.yy),G.yy.lexer=F,G.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var V=F.yylloc;I.push(V);var X=F.options&&F.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Q(we){S.length=S.length-2*we,L.length=L.length-we,I.length=I.length-we}o(Q,"popStack");function H(){var we;return we=A.pop()||F.lex()||P,typeof we!="number"&&(we instanceof Array&&(A=we,we=A.pop()),we=k.symbols_[we]||we),we}o(H,"lex");for(var ie,Y,le,ee,J,te,Z={},xe,de,Se,Me;;){if(le=S[S.length-1],this.defaultActions[le]?ee=this.defaultActions[le]:((ie===null||typeof ie>"u")&&(ie=H()),ee=N[le]&&N[le][ie]),typeof ee>"u"||!ee.length||!ee[0]){var ke="";Me=[];for(xe in N[le])this.terminals_[xe]&&xe>R&&Me.push("'"+this.terminals_[xe]+"'");F.showPosition?ke="Parse error on line "+(_+1)+`: +`+F.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[ie]||ie)+"'":ke="Parse error on line "+(_+1)+": Unexpected "+(ie==P?"end of input":"'"+(this.terminals_[ie]||ie)+"'"),this.parseError(ke,{text:F.match,token:this.terminals_[ie]||ie,line:F.yylineno,loc:V,expected:Me})}if(ee[0]instanceof Array&&ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+le+", token: "+ie);switch(ee[0]){case 1:S.push(ie),L.push(F.yytext),I.push(F.yylloc),S.push(ee[1]),ie=null,Y?(ie=Y,Y=null):(D=F.yyleng,C=F.yytext,_=F.yylineno,V=F.yylloc,M>0&&M--);break;case 2:if(de=this.productions_[ee[1]][1],Z.$=L[L.length-de],Z._$={first_line:I[I.length-(de||1)].first_line,last_line:I[I.length-1].last_line,first_column:I[I.length-(de||1)].first_column,last_column:I[I.length-1].last_column},X&&(Z._$.range=[I[I.length-(de||1)].range[0],I[I.length-1].range[1]]),te=this.performAction.apply(Z,[C,D,_,G.yy,ee[1],L,I].concat(B)),typeof te<"u")return te;de&&(S=S.slice(0,-1*de*2),L=L.slice(0,-1*de),I=I.slice(0,-1*de)),S.push(this.productions_[ee[1]][0]),L.push(Z.$),I.push(Z._$),Se=N[S[S.length-2]][S[S.length-1]],S.push(Se);break;case 3:return!0}}return!0},"parse")},b=(function(){var E={EOF:1,parseError:o(function(k,S){if(this.yy.parser)this.yy.parser.parseError(k,S);else throw new Error(k)},"parseError"),setInput:o(function(w,k){return this.yy=k||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var k=w.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},"input"),unput:o(function(w){var k=w.length,S=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),S.length-1&&(this.yylineno-=S.length-1);var L=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:S?(S.length===A.length?this.yylloc.first_column:0)+A[A.length-S.length].length-S[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[L[0],L[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(w){this.unput(this.match.slice(w))},"less"),pastInput:o(function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+k+"^"},"showPosition"),test_match:o(function(w,k){var S,A,L;if(this.options.backtrack_lexer&&(L={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(L.yylloc.range=this.yylloc.range.slice(0))),A=w[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+w[0].length},this.yytext+=w[0],this.match+=w[0],this.matches=w,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(w[0].length),this.matched+=w[0],S=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),S)return S;if(this._backtrack){for(var I in L)this[I]=L[I];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,k,S,A;this._more||(this.yytext="",this.match="");for(var L=this._currentRules(),I=0;Ik[0].length)){if(k=S,A=I,this.options.backtrack_lexer){if(w=this.test_match(S,L[I]),w!==!1)return w;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(w=this.test_match(k,L[A]),w!==!1?w:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var k=this.next();return k||this.lex()},"lex"),begin:o(function(k){this.conditionStack.push(k)},"begin"),popState:o(function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},"topState"),pushState:o(function(k){this.begin(k)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(k,S,A,L){var I=L;switch(A){case 0:return k.getLogger().trace("Found comment",S.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:k.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return k.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:k.getLogger().trace("end icon"),this.popState();break;case 10:return k.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return k.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return k.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return k.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:k.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return k.getLogger().trace("description:",S.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),k.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),k.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),k.getLogger().trace("node end ...",S.yytext),"NODE_DEND";break;case 30:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return k.getLogger().trace("Long description:",S.yytext),20;break;case 36:return k.getLogger().trace("Long description:",S.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return E})();x.lexer=b;function T(){this.yy={}}return o(T,"Parser"),T.prototype=x,x.Parser=T,new T})();VU.parser=VU;Oke=VU});function Bke(t,e=0){return(Qa[t[e+0]]+Qa[t[e+1]]+Qa[t[e+2]]+Qa[t[e+3]]+"-"+Qa[t[e+4]]+Qa[t[e+5]]+"-"+Qa[t[e+6]]+Qa[t[e+7]]+"-"+Qa[t[e+8]]+Qa[t[e+9]]+"-"+Qa[t[e+10]]+Qa[t[e+11]]+Qa[t[e+12]]+Qa[t[e+13]]+Qa[t[e+14]]+Qa[t[e+15]]).toLowerCase()}var Qa,Fke=O(()=>{"use strict";Qa=[];for(let t=0;t<256;++t)Qa.push((t+256).toString(16).slice(1));o(Bke,"unsafeStringify")});function UU(){if(!qU){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");qU=crypto.getRandomValues.bind(crypto)}return qU(vht)}var qU,vht,$ke=O(()=>{"use strict";vht=new Uint8Array(16);o(UU,"rng")});var xht,WU,zke=O(()=>{"use strict";xht=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),WU={randomUUID:xht}});function bht(t,e,r){if(WU.randomUUID&&!e&&!t)return WU.randomUUID();t=t||{};let n=t.random??t.rng?.()??UU();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)e[r+i]=n[i];return e}return Bke(n)}var HU,Gke=O(()=>{"use strict";zke();$ke();Fke();o(bht,"v4");HU=bht});var Vke=O(()=>{"use strict";Gke()});var qke,Uke=O(()=>{"use strict";co();ar();qke=12});var uf,c_,Wke=O(()=>{"use strict";jt();Vke();Ur();xt();La();$r();Uke();uf={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},c_=class{constructor(){this.nodes=[];this.count=0;this.elements={};this.getLogger=this.getLogger.bind(this),this.nodeType=uf,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{o(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(e){for(let r=this.nodes.length-1;r>=0;r--)if(this.nodes[r].level0?this.nodes[0]:null}addNode(e,r,n,i){K.info("addNode",e,r,n,i);let a=!1;this.nodes.length===0?(this.baseLevel=e,e=0,a=!0):this.baseLevel!==void 0&&(e=e-this.baseLevel,a=!1);let s=ve(),l=s.mindmap?.padding??gr.mindmap.padding;switch(i){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:l*=2;break}let u={id:this.count++,nodeId:wr(r,s),level:e,descr:wr(n,s),type:i,children:[],width:s.mindmap?.maxNodeWidth??gr.mindmap.maxNodeWidth,padding:l,isRoot:a},h=this.getParent(e);if(h)h.children.push(u),this.nodes.push(u);else if(a)this.nodes.push(u);else throw new Error(`There can be only one root. No parent could be found for ("${u.descr}")`)}getType(e,r){switch(K.debug("In get type",e,r),e){case"[":return this.nodeType.RECT;case"(":return r===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(e,r){this.elements[e]=r}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;let r=ve(),n=this.nodes[this.nodes.length-1];e.icon&&(n.icon=wr(e.icon,r)),e.class&&(n.class=wr(e.class,r))}type2Str(e){switch(e){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(e,r){if(e.level===0?e.section=void 0:e.section=r,e.children)for(let[n,i]of e.children.entries()){let a=e.level===0?n%(qke-1):r;this.assignSections(i,a)}}flattenNodes(e,r){let n=["mindmap-node"];e.isRoot===!0?n.push("section-root","section--1"):e.section!==void 0&&n.push(`section-${e.section}`),e.class&&n.push(e.class);let i=n.join(" "),a=o(l=>{switch(l){case uf.CIRCLE:return"mindmapCircle";case uf.RECT:return"rect";case uf.ROUNDED_RECT:return"rounded";case uf.CLOUD:return"cloud";case uf.BANG:return"bang";case uf.HEXAGON:return"hexagon";case uf.DEFAULT:return"defaultMindmapNode";case uf.NO_BORDER:default:return"rect"}},"getShapeFromType"),s={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,labelType:"markdown",isGroup:!1,shape:a(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:i,cssStyles:[],look:"default",icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(r.push(s),e.children)for(let l of e.children)this.flattenNodes(l,r)}generateEdges(e,r){if(e.children)for(let n of e.children){let i="edge";n.section!==void 0&&(i+=` section-edge-${n.section}`);let a=e.level+1;i+=` edge-depth-${a}`;let s={id:`edge_${e.id}_${n.id}`,start:e.id.toString(),end:n.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:"default",classes:i,depth:e.level,section:n.section};r.push(s),this.generateEdges(n,r)}}getData(){let e=this.getMindmap(),r=ve(),i=kY().layout!==void 0,a=r;if(i||(a.layout="cose-bilkent"),!e)return{nodes:[],edges:[],config:a};K.debug("getData: mindmapRoot",e,r),this.assignSections(e);let s=[],l=[];this.flattenNodes(e,s),this.generateEdges(e,l),K.debug(`getData: processed ${s.length} nodes and ${l.length} edges`);let u=new Map;for(let h of s)u.set(h.id,{shape:h.shape,width:h.width,height:h.height,padding:h.padding});return{nodes:s,edges:l,config:a,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(u),type:"mindmap",diagramId:"mindmap-"+HU()}}getLogger(){return K}}});var Tht,Hke,Yke=O(()=>{"use strict";xt();b0();Rd();Ld();La();Tht=o(async(t,e,r,n)=>{K.debug(`Rendering mindmap diagram +`+t);let i=n.db,a=i.getData(),s=Sl(e,a.config.securityLevel);a.type=n.type,a.layoutAlgorithm=Ru(a.config.layout,{fallback:"cose-bilkent"}),a.diagramId=e,i.getMindmap()&&(a.nodes.forEach(u=>{u.shape==="rounded"?(u.radius=15,u.taper=15,u.stroke="none",u.width=0,u.padding=15):u.shape==="circle"?u.padding=10:u.shape==="rect"&&(u.width=0,u.padding=10)}),await Ol(a,s),bo(s,a.config.mindmap?.padding??gr.mindmap.padding,"mindmapDiagram",a.config.mindmap?.useMaxWidth??gr.mindmap.useMaxWidth))},"draw"),Hke={draw:Tht}});var wht,kht,jke,Xke=O(()=>{"use strict";Ys();wht=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${wht(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .section-root span { + color: ${t.gitBranchLabel0}; + } + .section-2 span { + color: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),jke=kht});var Kke={};vr(Kke,{diagram:()=>Eht});var Eht,Qke=O(()=>{"use strict";Pke();Wke();Yke();Xke();Eht={get db(){return new c_},renderer:Hke,parser:Oke,styles:jke}});var YU,eEe,tEe=O(()=>{"use strict";YU=(function(){var t=o(function(S,A,L,I){for(L=L||{},I=S.length;I--;L[S[I]]=A);return L},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],T=[1,38],E={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(A,L,I,N,C,_,D){var M=_.length-1;switch(C){case 6:case 7:return N;case 8:N.getLogger().trace("Stop NL ");break;case 9:N.getLogger().trace("Stop EOF ");break;case 11:N.getLogger().trace("Stop NL2 ");break;case 12:N.getLogger().trace("Stop EOF2 ");break;case 15:N.getLogger().info("Node: ",_[M-1].id),N.addNode(_[M-2].length,_[M-1].id,_[M-1].descr,_[M-1].type,_[M]);break;case 16:N.getLogger().info("Node: ",_[M].id),N.addNode(_[M-1].length,_[M].id,_[M].descr,_[M].type);break;case 17:N.getLogger().trace("Icon: ",_[M]),N.decorateNode({icon:_[M]});break;case 18:case 23:N.decorateNode({class:_[M]});break;case 19:N.getLogger().trace("SPACELIST");break;case 20:N.getLogger().trace("Node: ",_[M-1].id),N.addNode(0,_[M-1].id,_[M-1].descr,_[M-1].type,_[M]);break;case 21:N.getLogger().trace("Node: ",_[M].id),N.addNode(0,_[M].id,_[M].descr,_[M].type);break;case 22:N.decorateNode({icon:_[M]});break;case 27:N.getLogger().trace("node found ..",_[M-2]),this.$={id:_[M-1],descr:_[M-1],type:N.getType(_[M-2],_[M])};break;case 28:this.$={id:_[M],descr:_[M],type:0};break;case 29:N.getLogger().trace("node found ..",_[M-3]),this.$={id:_[M-3],descr:_[M-1],type:N.getType(_[M-2],_[M])};break;case 30:this.$=_[M-1]+_[M];break;case 31:this.$=_[M];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:h,7:f,10:23,11:d},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(g,[2,25]),t(g,[2,26]),t(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:f,10:34,11:d},{1:[2,7],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(y,[2,14],{7:v,11:x}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:T}),t(g,[2,31]),{21:[1,39]},{22:[1,40]},t(y,[2,13],{7:v,11:x}),t(b,[2,11]),t(b,[2,12]),t(p,[2,15],{24:T}),t(g,[2,30]),{22:[1,41]},t(g,[2,27]),t(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(A,L){if(L.recoverable)this.trace(A);else{var I=new Error(A);throw I.hash=L,I}},"parseError"),parse:o(function(A){var L=this,I=[0],N=[],C=[null],_=[],D=this.table,M="",R=0,P=0,B=0,F=2,G=1,$=_.slice.call(arguments,1),V=Object.create(this.lexer),X={yy:{}};for(var Q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Q)&&(X.yy[Q]=this.yy[Q]);V.setInput(A,X.yy),X.yy.lexer=V,X.yy.parser=this,typeof V.yylloc>"u"&&(V.yylloc={});var H=V.yylloc;_.push(H);var ie=V.options&&V.options.ranges;typeof X.yy.parseError=="function"?this.parseError=X.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(fe){I.length=I.length-2*fe,C.length=C.length-fe,_.length=_.length-fe}o(Y,"popStack");function le(){var fe;return fe=N.pop()||V.lex()||G,typeof fe!="number"&&(fe instanceof Array&&(N=fe,fe=N.pop()),fe=L.symbols_[fe]||fe),fe}o(le,"lex");for(var ee,J,te,Z,xe,de,Se={},Me,ke,we,_e;;){if(te=I[I.length-1],this.defaultActions[te]?Z=this.defaultActions[te]:((ee===null||typeof ee>"u")&&(ee=le()),Z=D[te]&&D[te][ee]),typeof Z>"u"||!Z.length||!Z[0]){var $e="";_e=[];for(Me in D[te])this.terminals_[Me]&&Me>F&&_e.push("'"+this.terminals_[Me]+"'");V.showPosition?$e="Parse error on line "+(R+1)+`: +`+V.showPosition()+` +Expecting `+_e.join(", ")+", got '"+(this.terminals_[ee]||ee)+"'":$e="Parse error on line "+(R+1)+": Unexpected "+(ee==G?"end of input":"'"+(this.terminals_[ee]||ee)+"'"),this.parseError($e,{text:V.match,token:this.terminals_[ee]||ee,line:V.yylineno,loc:H,expected:_e})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+te+", token: "+ee);switch(Z[0]){case 1:I.push(ee),C.push(V.yytext),_.push(V.yylloc),I.push(Z[1]),ee=null,J?(ee=J,J=null):(P=V.yyleng,M=V.yytext,R=V.yylineno,H=V.yylloc,B>0&&B--);break;case 2:if(ke=this.productions_[Z[1]][1],Se.$=C[C.length-ke],Se._$={first_line:_[_.length-(ke||1)].first_line,last_line:_[_.length-1].last_line,first_column:_[_.length-(ke||1)].first_column,last_column:_[_.length-1].last_column},ie&&(Se._$.range=[_[_.length-(ke||1)].range[0],_[_.length-1].range[1]]),de=this.performAction.apply(Se,[M,P,R,X.yy,Z[1],C,_].concat($)),typeof de<"u")return de;ke&&(I=I.slice(0,-1*ke*2),C=C.slice(0,-1*ke),_=_.slice(0,-1*ke)),I.push(this.productions_[Z[1]][0]),C.push(Se.$),_.push(Se._$),we=D[I[I.length-2]][I[I.length-1]],I.push(we);break;case 3:return!0}}return!0},"parse")},w=(function(){var S={EOF:1,parseError:o(function(L,I){if(this.yy.parser)this.yy.parser.parseError(L,I);else throw new Error(L)},"parseError"),setInput:o(function(A,L){return this.yy=L||this.yy||{},this._input=A,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var A=this._input[0];this.yytext+=A,this.yyleng++,this.offset++,this.match+=A,this.matched+=A;var L=A.match(/(?:\r\n?|\n).*/g);return L?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),A},"input"),unput:o(function(A){var L=A.length,I=A.split(/(?:\r\n?|\n)/g);this._input=A+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-L),this.offset-=L;var N=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),I.length-1&&(this.yylineno-=I.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:I?(I.length===N.length?this.yylloc.first_column:0)+N[N.length-I.length].length-I[0].length:this.yylloc.first_column-L},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-L]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(A){this.unput(this.match.slice(A))},"less"),pastInput:o(function(){var A=this.matched.substr(0,this.matched.length-this.match.length);return(A.length>20?"...":"")+A.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var A=this.match;return A.length<20&&(A+=this._input.substr(0,20-A.length)),(A.substr(0,20)+(A.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var A=this.pastInput(),L=new Array(A.length+1).join("-");return A+this.upcomingInput()+` +`+L+"^"},"showPosition"),test_match:o(function(A,L){var I,N,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),N=A[0].match(/(?:\r\n?|\n).*/g),N&&(this.yylineno+=N.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:N?N[N.length-1].length-N[N.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+A[0].length},this.yytext+=A[0],this.match+=A[0],this.matches=A,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(A[0].length),this.matched+=A[0],I=this.performAction.call(this,this.yy,this,L,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var _ in C)this[_]=C[_];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var A,L,I,N;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),_=0;_L[0].length)){if(L=I,N=_,this.options.backtrack_lexer){if(A=this.test_match(I,C[_]),A!==!1)return A;if(this._backtrack){L=!1;continue}else return!1}else if(!this.options.flex)break}return L?(A=this.test_match(L,C[N]),A!==!1?A:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var L=this.next();return L||this.lex()},"lex"),begin:o(function(L){this.conditionStack.push(L)},"begin"),popState:o(function(){var L=this.conditionStack.length-1;return L>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(L){return L=this.conditionStack.length-1-Math.abs(L||0),L>=0?this.conditionStack[L]:"INITIAL"},"topState"),pushState:o(function(L){this.begin(L)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(L,I,N,C){var _=C;switch(N){case 0:return this.pushState("shapeData"),I.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let D=/\n\s*/g;return I.yytext=I.yytext.replace(D,"
    "),24;break;case 4:return 24;case 5:this.popState();break;case 6:return L.getLogger().trace("Found comment",I.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:L.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return L.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:L.getLogger().trace("end icon"),this.popState();break;case 16:return L.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return L.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return L.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return L.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:L.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return L.getLogger().trace("description:",I.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),L.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),L.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),L.getLogger().trace("node end ...",I.yytext),"NODE_DEND";break;case 36:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),L.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),L.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return L.getLogger().trace("Long description:",I.yytext),21;break;case 42:return L.getLogger().trace("Long description:",I.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return S})();E.lexer=w;function k(){this.yy={}}return o(k,"Parser"),k.prototype=E,E.Parser=k,new k})();YU.parser=YU;eEe=YU});var Yl,XU,jU,KU,_ht,Dht,rEe,Rht,Lht,ha,Nht,Mht,Iht,Oht,Pht,Bht,Fht,nEe,iEe=O(()=>{"use strict";jt();Ur();xt();La();ib();Yl=[],XU=[],jU=0,KU={},_ht=o(()=>{Yl=[],XU=[],jU=0,KU={}},"clear"),Dht=o(t=>{if(Yl.length===0)return null;let e=Yl[0].level,r=null;for(let n=Yl.length-1;n>=0;n--)if(Yl[n].level===e&&!r&&(r=Yl[n]),Yl[n].levell.parentId===i.id);for(let l of s){let u={id:l.id,parentId:i.id,label:wr(l.label??"",n),labelType:"markdown",isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(u)}}return{nodes:e,edges:t,other:{},config:ve()}},"getData"),Lht=o((t,e,r,n,i)=>{let a=ve(),s=a.mindmap?.padding??gr.mindmap.padding;switch(n){case ha.ROUNDED_RECT:case ha.RECT:case ha.HEXAGON:s*=2}let l={id:wr(e,a)||"kbn"+jU++,level:t,label:wr(r,a),width:a.mindmap?.maxNodeWidth??gr.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(i!==void 0){let h;i.includes(` +`)?h=i+` +`:h=`{ +`+i+` +}`;let f=Kf(h,{schema:Xf});if(f.shape&&(f.shape!==f.shape.toLowerCase()||f.shape.includes("_")))throw new Error(`No such shape: ${f.shape}. Shape names should be lowercase.`);f?.shape&&f.shape==="kanbanItem"&&(l.shape=f?.shape),f?.label&&(l.label=f?.label),f?.icon&&(l.icon=f?.icon.toString()),f?.assigned&&(l.assigned=f?.assigned.toString()),f?.ticket&&(l.ticket=f?.ticket.toString()),f?.priority&&(l.priority=f?.priority)}let u=Dht(t);u?l.parentId=u.id||"kbn"+jU++:XU.push(l),Yl.push(l)},"addNode"),ha={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Nht=o((t,e)=>{switch(K.debug("In get type",t,e),t){case"[":return ha.RECT;case"(":return e===")"?ha.ROUNDED_RECT:ha.CLOUD;case"((":return ha.CIRCLE;case")":return ha.CLOUD;case"))":return ha.BANG;case"{{":return ha.HEXAGON;default:return ha.DEFAULT}},"getType"),Mht=o((t,e)=>{KU[t]=e},"setElementForId"),Iht=o(t=>{if(!t)return;let e=ve(),r=Yl[Yl.length-1];t.icon&&(r.icon=wr(t.icon,e)),t.class&&(r.cssClasses=wr(t.class,e))},"decorateNode"),Oht=o(t=>{switch(t){case ha.DEFAULT:return"no-border";case ha.RECT:return"rect";case ha.ROUNDED_RECT:return"rounded-rect";case ha.CIRCLE:return"circle";case ha.CLOUD:return"cloud";case ha.BANG:return"bang";case ha.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),Pht=o(()=>K,"getLogger"),Bht=o(t=>KU[t],"getElementById"),Fht={clear:_ht,addNode:Lht,getSections:rEe,getData:Rht,nodeType:ha,getType:Nht,setElementForId:Mht,decorateNode:Iht,type2Str:Oht,getLogger:Pht,getElementById:Bht},nEe=Fht});var $ht,aEe,sEe=O(()=>{"use strict";jt();xt();Ul();Ti();La();oE();yE();$ht=o(async(t,e,r,n)=>{K.debug(`Rendering kanban diagram +`+t);let a=n.db.getData(),s=ve();s.htmlLabels=!1;let l=Ii(e),u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let f=a.nodes.filter(v=>v.isGroup),d=0,p=10,m=[],g=25;for(let v of f){let x=s?.kanban?.sectionWidth||200;d=d+1,v.x=x*d+(d-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+d;let b=await g1(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of f){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,T=-b*3/2+g,E=T,w=a.nodes.filter(A=>A.parentId===v.id);for(let A of w){if(A.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");A.x=v.x,A.width=b-1.5*p;let I=(await y1(h,A,{config:s})).node().getBBox();A.y=E+I.height/2,await vb(A),E=A.y+I.height/2+p/2}let k=x.cluster.select("rect"),S=Math.max(E-T+3*p,50)+(g-25);k.attr("height",S)}Kc(void 0,l,s.mindmap?.padding??gr.kanban.padding,s.mindmap?.useMaxWidth??gr.kanban.useMaxWidth)},"draw"),aEe={draw:$ht}});var zht,Ght,oEe,lEe=O(()=>{"use strict";Ys();ly();zht=o(t=>{let e="";for(let n=0;nt.darkMode?Bt(n,i):Lt(n,i),"adjuster");for(let n=0;n` + .edge { + stroke-width: 3; + } + ${zht(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${t.textColor}; + fill: ${t.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } + ${Lu()} +`,"getStyles"),oEe=Ght});var cEe={};vr(cEe,{diagram:()=>Vht});var Vht,uEe=O(()=>{"use strict";tEe();iEe();sEe();lEe();Vht={db:nEe,renderer:aEe,parser:eEe,styles:oEe}});var QU,T3,dEe=O(()=>{"use strict";QU=(function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,T=2,E=1,w=m.slice.call(arguments,1),k=Object.create(this.lexer),S={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(S.yy[A]=this.yy[A]);k.setInput(u,S.yy),S.yy.lexer=k,S.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var L=k.yylloc;m.push(L);var I=k.options&&k.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(H){f.length=f.length-2*H,p.length=p.length-H,m.length=m.length-H}o(N,"popStack");function C(){var H;return H=d.pop()||k.lex()||E,typeof H!="number"&&(H instanceof Array&&(d=H,H=d.pop()),H=h.symbols_[H]||H),H}o(C,"lex");for(var _,D,M,R,P,B,F={},G,$,V,X;;){if(M=f[f.length-1],this.defaultActions[M]?R=this.defaultActions[M]:((_===null||typeof _>"u")&&(_=C()),R=g[M]&&g[M][_]),typeof R>"u"||!R.length||!R[0]){var Q="";X=[];for(G in g[M])this.terminals_[G]&&G>T&&X.push("'"+this.terminals_[G]+"'");k.showPosition?Q="Parse error on line "+(v+1)+`: +`+k.showPosition()+` +Expecting `+X.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Q="Parse error on line "+(v+1)+": Unexpected "+(_==E?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Q,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:L,expected:X})}if(R[0]instanceof Array&&R.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+_);switch(R[0]){case 1:f.push(_),p.push(k.yytext),m.push(k.yylloc),f.push(R[1]),_=null,D?(_=D,D=null):(x=k.yyleng,y=k.yytext,v=k.yylineno,L=k.yylloc,b>0&&b--);break;case 2:if($=this.productions_[R[1]][1],F.$=p[p.length-$],F._$={first_line:m[m.length-($||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-($||1)].first_column,last_column:m[m.length-1].last_column},I&&(F._$.range=[m[m.length-($||1)].range[0],m[m.length-1].range[1]]),B=this.performAction.apply(F,[y,x,v,S.yy,R[1],p,m].concat(w)),typeof B<"u")return B;$&&(f=f.slice(0,-1*$*2),p=p.slice(0,-1*$),m=m.slice(0,-1*$)),f.push(this.productions_[R[1]][0]),p.push(F.$),m.push(F._$),V=g[f[f.length-2]][f[f.length-1]],f.push(V);break;case 3:return!0}}return!0},"parse")},a=(function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return this.pushState("csv"),4;break;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;break;case 6:return 20;case 7:return this.popState("escaped_text"),18;break;case 8:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}};return l})();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s})();QU.parser=QU;T3=QU});var h_,f_,u_,Hht,ZU,Yht,JU,jht,Xht,Kht,Qht,pEe,mEe=O(()=>{"use strict";jt();Ur();si();h_=[],f_=[],u_=new Map,Hht=o(()=>{h_=[],f_=[],u_=new Map,_r()},"clear"),ZU=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},Yht=o((t,e,r)=>{h_.push(new ZU(t,e,r))},"addLink"),JU=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},jht=o(t=>{t=st.sanitizeText(t,ve());let e=u_.get(t);return e===void 0&&(e=new JU(t),u_.set(t,e),f_.push(e)),e},"findOrCreateNode"),Xht=o(()=>f_,"getNodes"),Kht=o(()=>h_,"getLinks"),Qht=o(()=>({nodes:f_.map(t=>({id:t.ID})),links:h_.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),pEe={nodesMap:u_,getConfig:o(()=>ve().sankey,"getConfig"),getNodes:Xht,getLinks:Kht,getGraph:Qht,addLink:Yht,findOrCreateNode:jht,getAccTitle:Or,setAccTitle:Lr,getAccDescription:Br,setAccDescription:Pr,getDiagramTitle:Fr,setDiagramTitle:zr,clear:Hht}});function w3(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var gEe=O(()=>{"use strict";o(w3,"max")});function Wv(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var yEe=O(()=>{"use strict";o(Wv,"min")});function Hv(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var vEe=O(()=>{"use strict";o(Hv,"sum")});var eW=O(()=>{"use strict";gEe();yEe();vEe()});function Zht(t){return t.target.depth}function tW(t){return t.depth}function rW(t,e){return e-1-t.height}function k3(t,e){return t.sourceLinks.length?t.depth:e-1}function nW(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?Wv(t.sourceLinks,Zht)-1:0}var iW=O(()=>{"use strict";eW();o(Zht,"targetDepth");o(tW,"left");o(rW,"right");o(k3,"justify");o(nW,"center")});function Yv(t){return function(){return t}}var xEe=O(()=>{"use strict";o(Yv,"constant")});function bEe(t,e){return d_(t.source,e.source)||t.index-e.index}function TEe(t,e){return d_(t.target,e.target)||t.index-e.index}function d_(t,e){return t.y0-e.y0}function aW(t){return t.value}function Jht(t){return t.index}function eft(t){return t.nodes}function tft(t){return t.links}function wEe(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function kEe({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function p_(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=Jht,u=k3,h,f,d=eft,p=tft,m=6;function g(){let M={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(M),v(M),x(M),b(M),w(M),kEe(M),M}o(g,"sankey"),g.update=function(M){return kEe(M),M},g.nodeId=function(M){return arguments.length?(l=typeof M=="function"?M:Yv(M),g):l},g.nodeAlign=function(M){return arguments.length?(u=typeof M=="function"?M:Yv(M),g):u},g.nodeSort=function(M){return arguments.length?(h=M,g):h},g.nodeWidth=function(M){return arguments.length?(i=+M,g):i},g.nodePadding=function(M){return arguments.length?(a=s=+M,g):a},g.nodes=function(M){return arguments.length?(d=typeof M=="function"?M:Yv(M),g):d},g.links=function(M){return arguments.length?(p=typeof M=="function"?M:Yv(M),g):p},g.linkSort=function(M){return arguments.length?(f=M,g):f},g.size=function(M){return arguments.length?(t=e=0,r=+M[0],n=+M[1],g):[r-t,n-e]},g.extent=function(M){return arguments.length?(t=+M[0][0],r=+M[1][0],e=+M[0][1],n=+M[1][1],g):[[t,e],[r,n]]},g.iterations=function(M){return arguments.length?(m=+M,g):m};function y({nodes:M,links:R}){for(let[B,F]of M.entries())F.index=B,F.sourceLinks=[],F.targetLinks=[];let P=new Map(M.map((B,F)=>[l(B,F,M),B]));for(let[B,F]of R.entries()){F.index=B;let{source:G,target:$}=F;typeof G!="object"&&(G=F.source=wEe(P,G)),typeof $!="object"&&($=F.target=wEe(P,$)),G.sourceLinks.push(F),$.targetLinks.push(F)}if(f!=null)for(let{sourceLinks:B,targetLinks:F}of M)B.sort(f),F.sort(f)}o(y,"computeNodeLinks");function v({nodes:M}){for(let R of M)R.value=R.fixedValue===void 0?Math.max(Hv(R.sourceLinks,aW),Hv(R.targetLinks,aW)):R.fixedValue}o(v,"computeNodeValues");function x({nodes:M}){let R=M.length,P=new Set(M),B=new Set,F=0;for(;P.size;){for(let G of P){G.depth=F;for(let{target:$}of G.sourceLinks)B.add($)}if(++F>R)throw new Error("circular link");P=B,B=new Set}}o(x,"computeNodeDepths");function b({nodes:M}){let R=M.length,P=new Set(M),B=new Set,F=0;for(;P.size;){for(let G of P){G.height=F;for(let{source:$}of G.targetLinks)B.add($)}if(++F>R)throw new Error("circular link");P=B,B=new Set}}o(b,"computeNodeHeights");function T({nodes:M}){let R=w3(M,F=>F.depth)+1,P=(r-t-i)/(R-1),B=new Array(R);for(let F of M){let G=Math.max(0,Math.min(R-1,Math.floor(u.call(null,F,R))));F.layer=G,F.x0=t+G*P,F.x1=F.x0+i,B[G]?B[G].push(F):B[G]=[F]}if(h)for(let F of B)F.sort(h);return B}o(T,"computeNodeLayers");function E(M){let R=Wv(M,P=>(n-e-(P.length-1)*s)/Hv(P,aW));for(let P of M){let B=e;for(let F of P){F.y0=B,F.y1=B+F.value*R,B=F.y1+s;for(let G of F.sourceLinks)G.width=G.value*R}B=(n-B+s)/(P.length+1);for(let F=0;FP.length)-1)),E(R);for(let P=0;P0))continue;let Q=(V/X-$.y0)*R;$.y0+=Q,$.y1+=Q,N($)}h===void 0&&G.sort(d_),A(G,P)}}o(k,"relaxLeftToRight");function S(M,R,P){for(let B=M.length,F=B-2;F>=0;--F){let G=M[F];for(let $ of G){let V=0,X=0;for(let{target:H,value:ie}of $.sourceLinks){let Y=ie*(H.layer-$.layer);V+=D($,H)*Y,X+=Y}if(!(X>0))continue;let Q=(V/X-$.y0)*R;$.y0+=Q,$.y1+=Q,N($)}h===void 0&&G.sort(d_),A(G,P)}}o(S,"relaxRightToLeft");function A(M,R){let P=M.length>>1,B=M[P];I(M,B.y0-s,P-1,R),L(M,B.y1+s,P+1,R),I(M,n,M.length-1,R),L(M,e,0,R)}o(A,"resolveCollisions");function L(M,R,P,B){for(;P1e-6&&(F.y0+=G,F.y1+=G),R=F.y1+s}}o(L,"resolveCollisionsTopToBottom");function I(M,R,P,B){for(;P>=0;--P){let F=M[P],G=(F.y1-R)*B;G>1e-6&&(F.y0-=G,F.y1-=G),R=F.y0-s}}o(I,"resolveCollisionsBottomToTop");function N({sourceLinks:M,targetLinks:R}){if(f===void 0){for(let{source:{sourceLinks:P}}of R)P.sort(TEe);for(let{target:{targetLinks:P}}of M)P.sort(bEe)}}o(N,"reorderNodeLinks");function C(M){if(f===void 0)for(let{sourceLinks:R,targetLinks:P}of M)R.sort(TEe),P.sort(bEe)}o(C,"reorderLinks");function _(M,R){let P=M.y0-(M.sourceLinks.length-1)*s/2;for(let{target:B,width:F}of M.sourceLinks){if(B===R)break;P+=F+s}for(let{source:B,width:F}of R.targetLinks){if(B===M)break;P-=F}return P}o(_,"targetTop");function D(M,R){let P=R.y0-(R.targetLinks.length-1)*s/2;for(let{source:B,width:F}of R.targetLinks){if(B===M)break;P+=F+s}for(let{target:B,width:F}of M.sourceLinks){if(B===R)break;P-=F}return P}return o(D,"sourceTop"),g}var EEe=O(()=>{"use strict";eW();iW();xEe();o(bEe,"ascendingSourceBreadth");o(TEe,"ascendingTargetBreadth");o(d_,"ascendingBreadth");o(aW,"value");o(Jht,"defaultId");o(eft,"defaultNodes");o(tft,"defaultLinks");o(wEe,"find");o(kEe,"computeLinkBreadths");o(p_,"Sankey")});function lW(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function SEe(){return new lW}var sW,oW,Jm,rft,cW,CEe=O(()=>{"use strict";sW=Math.PI,oW=2*sW,Jm=1e-6,rft=oW-Jm;o(lW,"Path");o(SEe,"path");lW.prototype=SEe.prototype={constructor:lW,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>Jm)if(!(Math.abs(f*l-u*h)>Jm)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((sW-Math.acos((g+d-y)/(2*v*x)))/2),T=b/x,E=b/v;Math.abs(T-1)>Jm&&(this._+="L"+(t+T*h)+","+(e+T*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+E*l)+","+(this._y1=e+E*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>Jm||Math.abs(this._y1-h)>Jm)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%oW+oW),d>rft?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>Jm&&(this._+="A"+r+","+r+",0,"+ +(d>=sW)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};cW=SEe});var AEe=O(()=>{"use strict";CEe()});function m_(t){return o(function(){return t},"constant")}var _Ee=O(()=>{"use strict";o(m_,"default")});function DEe(t){return t[0]}function REe(t){return t[1]}var LEe=O(()=>{"use strict";o(DEe,"x");o(REe,"y")});var NEe,MEe=O(()=>{"use strict";NEe=Array.prototype.slice});function nft(t){return t.source}function ift(t){return t.target}function aft(t){var e=nft,r=ift,n=DEe,i=REe,a=null;function s(){var l,u=NEe.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=cW()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:m_(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:m_(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function sft(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function uW(){return aft(sft)}var IEe=O(()=>{"use strict";AEe();MEe();_Ee();LEe();o(nft,"linkSource");o(ift,"linkTarget");o(aft,"link");o(sft,"curveHorizontal");o(uW,"linkHorizontal")});var OEe=O(()=>{"use strict";IEe()});function oft(t){return[t.source.x1,t.y0]}function lft(t){return[t.target.x0,t.y1]}function g_(){return uW().source(oft).target(lft)}var PEe=O(()=>{"use strict";OEe();o(oft,"horizontalSource");o(lft,"horizontalTarget");o(g_,"default")});var BEe=O(()=>{"use strict";EEe();iW();PEe()});var E3,FEe=O(()=>{"use strict";E3=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var cft,uft,$Ee,zEe=O(()=>{"use strict";jt();Ar();BEe();Ti();FEe();cft={left:tW,right:rW,center:nW,justify:k3},uft=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=ve(),s=Fw.sankey,l;i==="sandbox"&&(l=je("#i"+e));let u=i==="sandbox"?je(l.nodes()[0].contentDocument.body):je("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):je(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=cft[m];p_().nodeId(I=>I.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let w=Fo(B9);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",I=>(I.uid=E3.next("node-")).id).attr("transform",function(I){return"translate("+I.x0+","+I.y0+")"}).attr("x",I=>I.x0).attr("y",I=>I.y0).append("rect").attr("height",I=>I.y1-I.y0).attr("width",I=>I.x1-I.x0).attr("fill",I=>w(I.id));let k=o(({id:I,value:N})=>v?`${I} +${g}${Math.round(N*100)/100}${y}`:I,"getText");h.append("g").attr("class","node-labels").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",I=>I.x0(I.y1+I.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",I=>I.x0(N.uid=E3.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",N=>N.source.x1).attr("x2",N=>N.target.x0);I.append("stop").attr("offset","0%").attr("stop-color",N=>w(N.source.id)),I.append("stop").attr("offset","100%").attr("stop-color",N=>w(N.target.id))}let L;switch(A){case"gradient":L=o(I=>I.uid,"coloring");break;case"source":L=o(I=>w(I.source.id),"coloring");break;case"target":L=o(I=>w(I.target.id),"coloring");break;default:L=A}S.append("path").attr("d",g_()).attr("stroke",L).attr("stroke-width",I=>Math.max(1,I.width)),Kc(void 0,h,0,p)},"draw"),$Ee={draw:uft}});var GEe,VEe=O(()=>{"use strict";GEe=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var hft,qEe,UEe=O(()=>{"use strict";hft=o(t=>`.label { + font-family: ${t.fontFamily}; + }`,"getStyles"),qEe=hft});var WEe={};vr(WEe,{diagram:()=>dft});var fft,dft,HEe=O(()=>{"use strict";dEe();mEe();zEe();VEe();UEe();fft=T3.parse.bind(T3);T3.parse=t=>fft(GEe(t));dft={styles:qEe,parser:T3,db:pEe,renderer:$Ee}});var yft,jv,hW=O(()=>{"use strict";$r();La();ar();si();yft=gr.packet,jv=class{constructor(){this.packet=[];this.setAccTitle=Lr;this.getAccTitle=Or;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getAccDescription=Br;this.setAccDescription=Pr}static{o(this,"PacketDB")}getConfig(){let e=Pn({...yft,...Zt().packet});return e.showBits&&(e.paddingY+=10),e}getPacket(){return this.packet}pushWord(e){e.length>0&&this.packet.push(e)}clear(){_r(),this.packet=[]}}});var vft,xft,bft,fW,XEe=O(()=>{"use strict";up();xt();Vm();hW();vft=1e4,xft=o((t,e)=>{ql(t,e);let r=-1,n=[],i=1,{bitsPerRow:a}=e.getConfig();for(let{start:s,end:l,bits:u,label:h}of t.blocks){if(s!==void 0&&l!==void 0&&l{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];let n=e*r-1,i=e*r;return[{start:t.start,end:n,label:t.label,bits:n-t.start},{start:i,end:t.end,label:t.label,bits:t.end-i}]},"getNextFittingBlock"),fW={parser:{yy:void 0},parse:o(async t=>{let e=await Us("packet",t),r=fW.parser?.yy;if(!(r instanceof jv))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");K.debug(e),xft(e,r)},"parse")}});var Tft,wft,KEe,QEe=O(()=>{"use strict";Ul();Ti();Tft=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=Ii(e);y.attr("viewBox",`0 0 ${g} ${m}`),Zr(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())wft(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),wft=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),KEe={draw:Tft}});var kft,ZEe,JEe=O(()=>{"use strict";ar();kft={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},ZEe=o(({packet:t}={})=>{let e=Pn(kft,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")});var eSe={};vr(eSe,{diagram:()=>Eft});var Eft,tSe=O(()=>{"use strict";hW();XEe();QEe();JEe();Eft={parser:fW,get db(){return new jv},renderer:KEe,styles:ZEe}});var Xv,iSe,eg,Aft,_ft,aSe,Dft,Rft,Lft,Nft,Mft,Ift,Oft,tg,dW=O(()=>{"use strict";$r();La();ar();si();Xv={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},iSe={axes:[],curves:[],options:Xv},eg=structuredClone(iSe),Aft=gr.radar,_ft=o(()=>Pn({...Aft,...Zt().radar}),"getConfig"),aSe=o(()=>eg.axes,"getAxes"),Dft=o(()=>eg.curves,"getCurves"),Rft=o(()=>eg.options,"getOptions"),Lft=o(t=>{eg.axes=t.map(e=>({name:e.name,label:e.label??e.name}))},"setAxes"),Nft=o(t=>{eg.curves=t.map(e=>({name:e.name,label:e.label??e.name,entries:Mft(e.entries)}))},"setCurves"),Mft=o(t=>{if(t[0].axis==null)return t.map(r=>r.value);let e=aSe();if(e.length===0)throw new Error("Axes must be populated before curves for reference entries");return e.map(r=>{let n=t.find(i=>i.axis?.$refText===r.name);if(n===void 0)throw new Error("Missing entry for axis "+r.label);return n.value})},"computeCurveEntries"),Ift=o(t=>{let e=t.reduce((r,n)=>(r[n.name]=n,r),{});eg.options={showLegend:e.showLegend?.value??Xv.showLegend,ticks:e.ticks?.value??Xv.ticks,max:e.max?.value??Xv.max,min:e.min?.value??Xv.min,graticule:e.graticule?.value??Xv.graticule}},"setOptions"),Oft=o(()=>{_r(),eg=structuredClone(iSe)},"clear"),tg={getAxes:aSe,getCurves:Dft,getOptions:Rft,setAxes:Lft,setCurves:Nft,setOptions:Ift,getConfig:_ft,clear:Oft,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr}});var Pft,sSe,oSe=O(()=>{"use strict";up();xt();Vm();dW();Pft=o(t=>{ql(t,tg);let{axes:e,curves:r,options:n}=t;tg.setAxes(e),tg.setCurves(r),tg.setOptions(n)},"populate"),sSe={parse:o(async t=>{let e=await Us("radar",t);K.debug(e),Pft(e)},"parse")}});function Gft(t,e,r,n,i,a,s){let l=e.length,u=Math.min(s.width,s.height)/2;r.forEach((h,f)=>{if(h.entries.length!==l)return;let d=h.entries.map((p,m)=>{let g=2*Math.PI*m/l-Math.PI/2,y=Vft(p,n,i,u),v=y*Math.cos(g),x=y*Math.sin(g);return{x:v,y:x}});a==="circle"?t.append("path").attr("d",qft(d,s.curveTension)).attr("class",`radarCurve-${f}`):a==="polygon"&&t.append("polygon").attr("points",d.map(p=>`${p.x},${p.y}`).join(" ")).attr("class",`radarCurve-${f}`)})}function Vft(t,e,r,n){let i=Math.min(Math.max(t,e),r);return n*(i-e)/(r-e)}function qft(t,e){let r=t.length,n=`M${t[0].x},${t[0].y}`;for(let i=0;i{let h=t.append("g").attr("transform",`translate(${i}, ${a+u*s})`);h.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${u}`),h.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(l.label)})}var Bft,Fft,$ft,zft,lSe,cSe=O(()=>{"use strict";Ul();Ti();Bft=o((t,e,r,n)=>{let i=n.db,a=i.getAxes(),s=i.getCurves(),l=i.getOptions(),u=i.getConfig(),h=i.getDiagramTitle(),f=Ii(e),d=Fft(f,u),p=l.max??Math.max(...s.map(y=>Math.max(...y.entries))),m=l.min,g=Math.min(u.width,u.height)/2;$ft(d,a,g,l.ticks,l.graticule),zft(d,a,g,u),Gft(d,a,s,m,p,l.graticule,u),Uft(d,s,l.showLegend,u),d.append("text").attr("class","radarTitle").text(h).attr("x",0).attr("y",-u.height/2-u.marginTop)},"draw"),Fft=o((t,e)=>{let r=e.width+e.marginLeft+e.marginRight,n=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return Zr(t,n,r,e.useMaxWidth??!0),t.attr("viewBox",`0 0 ${r} ${n}`),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),$ft=o((t,e,r,n,i)=>{if(i==="circle")for(let a=0;a{let d=2*f*Math.PI/a-Math.PI/2,p=l*Math.cos(d),m=l*Math.sin(d);return`${p},${m}`}).join(" ");t.append("polygon").attr("points",u).attr("class","radarGraticule")}}},"drawGraticule"),zft=o((t,e,r,n)=>{let i=e.length;for(let a=0;a{"use strict";ar();y2();$r();Wft=o((t,e)=>{let r="";for(let n=0;n{let e=yf(),r=Zt(),n=Pn(e,r.themeVariables),i=Pn(n.radar,t);return{themeVariables:n,radarOptions:i}},"buildRadarStyleOptions"),uSe=o(({radar:t}={})=>{let{themeVariables:e,radarOptions:r}=Hft(t);return` + .radarTitle { + font-size: ${e.fontSize}; + color: ${e.titleColor}; + dominant-baseline: hanging; + text-anchor: middle; + } + .radarAxisLine { + stroke: ${r.axisColor}; + stroke-width: ${r.axisStrokeWidth}; + } + .radarAxisLabel { + dominant-baseline: middle; + text-anchor: middle; + font-size: ${r.axisLabelFontSize}px; + color: ${r.axisColor}; + } + .radarGraticule { + fill: ${r.graticuleColor}; + fill-opacity: ${r.graticuleOpacity}; + stroke: ${r.graticuleColor}; + stroke-width: ${r.graticuleStrokeWidth}; + } + .radarLegendText { + text-anchor: start; + font-size: ${r.legendFontSize}px; + dominant-baseline: hanging; + } + ${Wft(e,r)} + `},"styles")});var fSe={};vr(fSe,{diagram:()=>Yft});var Yft,dSe=O(()=>{"use strict";dW();oSe();cSe();hSe();Yft={parser:sSe,db:tg,renderer:lSe,styles:uSe}});var pW,gSe,ySe=O(()=>{"use strict";pW=(function(){var t=o(function(T,E,w,k){for(w=w||{},k=T.length;k--;w[T[k]]=E);return w},"o"),e=[1,15],r=[1,7],n=[1,13],i=[1,14],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,10,21,28,29,30,31,39,43,46],d=[1,23],p=[1,24],m=[8,10,15,16,21,28,29,30,31,39,43,46],g=[8,10,15,16,21,27,28,29,30,31,39,43,46],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(E,w,k,S,A,L,I){var N=L.length-1;switch(A){case 4:S.getLogger().debug("Rule: separator (NL) ");break;case 5:S.getLogger().debug("Rule: separator (Space) ");break;case 6:S.getLogger().debug("Rule: separator (EOF) ");break;case 7:S.getLogger().debug("Rule: hierarchy: ",L[N-1]),S.setHierarchy(L[N-1]);break;case 8:S.getLogger().debug("Stop NL ");break;case 9:S.getLogger().debug("Stop EOF ");break;case 10:S.getLogger().debug("Stop NL2 ");break;case 11:S.getLogger().debug("Stop EOF2 ");break;case 12:S.getLogger().debug("Rule: statement: ",L[N]),typeof L[N].length=="number"?this.$=L[N]:this.$=[L[N]];break;case 13:S.getLogger().debug("Rule: statement #2: ",L[N-1]),this.$=[L[N-1]].concat(L[N]);break;case 14:S.getLogger().debug("Rule: link: ",L[N],E),this.$={edgeTypeStr:L[N],label:""};break;case 15:S.getLogger().debug("Rule: LABEL link: ",L[N-3],L[N-1],L[N]),this.$={edgeTypeStr:L[N],label:L[N-1]};break;case 18:let C=parseInt(L[N]),_=S.generateId();this.$={id:_,type:"space",label:"",width:C,children:[]};break;case 23:S.getLogger().debug("Rule: (nodeStatement link node) ",L[N-2],L[N-1],L[N]," typestr: ",L[N-1].edgeTypeStr);let D=S.edgeStrToEdgeData(L[N-1].edgeTypeStr);this.$=[{id:L[N-2].id,label:L[N-2].label,type:L[N-2].type,directions:L[N-2].directions},{id:L[N-2].id+"-"+L[N].id,start:L[N-2].id,end:L[N].id,label:L[N-1].label,type:"edge",directions:L[N].directions,arrowTypeEnd:D,arrowTypeStart:"arrow_open"},{id:L[N].id,label:L[N].label,type:S.typeStr2Type(L[N].typeStr),directions:L[N].directions}];break;case 24:S.getLogger().debug("Rule: nodeStatement (abc88 node size) ",L[N-1],L[N]),this.$={id:L[N-1].id,label:L[N-1].label,type:S.typeStr2Type(L[N-1].typeStr),directions:L[N-1].directions,widthInColumns:parseInt(L[N],10)};break;case 25:S.getLogger().debug("Rule: nodeStatement (node) ",L[N]),this.$={id:L[N].id,label:L[N].label,type:S.typeStr2Type(L[N].typeStr),directions:L[N].directions,widthInColumns:1};break;case 26:S.getLogger().debug("APA123",this?this:"na"),S.getLogger().debug("COLUMNS: ",L[N]),this.$={type:"column-setting",columns:L[N]==="auto"?-1:parseInt(L[N])};break;case 27:S.getLogger().debug("Rule: id-block statement : ",L[N-2],L[N-1]);let M=S.generateId();this.$={...L[N-2],type:"composite",children:L[N-1]};break;case 28:S.getLogger().debug("Rule: blockStatement : ",L[N-2],L[N-1],L[N]);let R=S.generateId();this.$={id:R,type:"composite",label:"",children:L[N-1]};break;case 29:S.getLogger().debug("Rule: node (NODE_ID separator): ",L[N]),this.$={id:L[N]};break;case 30:S.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",L[N-1],L[N]),this.$={id:L[N-1],label:L[N].label,typeStr:L[N].typeStr,directions:L[N].directions};break;case 31:S.getLogger().debug("Rule: dirList: ",L[N]),this.$=[L[N]];break;case 32:S.getLogger().debug("Rule: dirList: ",L[N-1],L[N]),this.$=[L[N-1]].concat(L[N]);break;case 33:S.getLogger().debug("Rule: nodeShapeNLabel: ",L[N-2],L[N-1],L[N]),this.$={typeStr:L[N-2]+L[N],label:L[N-1]};break;case 34:S.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",L[N-3],L[N-2]," #3:",L[N-1],L[N]),this.$={typeStr:L[N-3]+L[N],label:L[N-2],directions:L[N-1]};break;case 35:case 36:this.$={type:"classDef",id:L[N-1].trim(),css:L[N].trim()};break;case 37:this.$={type:"applyClass",id:L[N-1].trim(),styleClass:L[N].trim()};break;case 38:this.$={type:"applyStyles",id:L[N-1].trim(),stylesStr:L[N].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:e,11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:e,21:r,28:n,29:i,31:a,39:s,43:l,46:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,31:a},{10:e,11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},t(g,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,31:a},{31:[2,14]},{17:[1,36]},t(m,[2,24]),{10:e,11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{36:[1,47]},{33:48,34:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{38:[1,51]},{33:52,34:y,38:[2,31]},{31:[2,15]},t(g,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(E,w){if(w.recoverable)this.trace(E);else{var k=new Error(E);throw k.hash=w,k}},"parseError"),parse:o(function(E){var w=this,k=[0],S=[],A=[null],L=[],I=this.table,N="",C=0,_=0,D=0,M=2,R=1,P=L.slice.call(arguments,1),B=Object.create(this.lexer),F={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&(F.yy[G]=this.yy[G]);B.setInput(E,F.yy),F.yy.lexer=B,F.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var $=B.yylloc;L.push($);var V=B.options&&B.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X(ke){k.length=k.length-2*ke,A.length=A.length-ke,L.length=L.length-ke}o(X,"popStack");function Q(){var ke;return ke=S.pop()||B.lex()||R,typeof ke!="number"&&(ke instanceof Array&&(S=ke,ke=S.pop()),ke=w.symbols_[ke]||ke),ke}o(Q,"lex");for(var H,ie,Y,le,ee,J,te={},Z,xe,de,Se;;){if(Y=k[k.length-1],this.defaultActions[Y]?le=this.defaultActions[Y]:((H===null||typeof H>"u")&&(H=Q()),le=I[Y]&&I[Y][H]),typeof le>"u"||!le.length||!le[0]){var Me="";Se=[];for(Z in I[Y])this.terminals_[Z]&&Z>M&&Se.push("'"+this.terminals_[Z]+"'");B.showPosition?Me="Parse error on line "+(C+1)+`: +`+B.showPosition()+` +Expecting `+Se.join(", ")+", got '"+(this.terminals_[H]||H)+"'":Me="Parse error on line "+(C+1)+": Unexpected "+(H==R?"end of input":"'"+(this.terminals_[H]||H)+"'"),this.parseError(Me,{text:B.match,token:this.terminals_[H]||H,line:B.yylineno,loc:$,expected:Se})}if(le[0]instanceof Array&&le.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Y+", token: "+H);switch(le[0]){case 1:k.push(H),A.push(B.yytext),L.push(B.yylloc),k.push(le[1]),H=null,ie?(H=ie,ie=null):(_=B.yyleng,N=B.yytext,C=B.yylineno,$=B.yylloc,D>0&&D--);break;case 2:if(xe=this.productions_[le[1]][1],te.$=A[A.length-xe],te._$={first_line:L[L.length-(xe||1)].first_line,last_line:L[L.length-1].last_line,first_column:L[L.length-(xe||1)].first_column,last_column:L[L.length-1].last_column},V&&(te._$.range=[L[L.length-(xe||1)].range[0],L[L.length-1].range[1]]),J=this.performAction.apply(te,[N,_,C,F.yy,le[1],A,L].concat(P)),typeof J<"u")return J;xe&&(k=k.slice(0,-1*xe*2),A=A.slice(0,-1*xe),L=L.slice(0,-1*xe)),k.push(this.productions_[le[1]][0]),A.push(te.$),L.push(te._$),de=I[k[k.length-2]][k[k.length-1]],k.push(de);break;case 3:return!0}}return!0},"parse")},x=(function(){var T={EOF:1,parseError:o(function(w,k){if(this.yy.parser)this.yy.parser.parseError(w,k);else throw new Error(w)},"parseError"),setInput:o(function(E,w){return this.yy=w||this.yy||{},this._input=E,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var E=this._input[0];this.yytext+=E,this.yyleng++,this.offset++,this.match+=E,this.matched+=E;var w=E.match(/(?:\r\n?|\n).*/g);return w?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),E},"input"),unput:o(function(E){var w=E.length,k=E.split(/(?:\r\n?|\n)/g);this._input=E+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var S=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),k.length-1&&(this.yylineno-=k.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:k?(k.length===S.length?this.yylloc.first_column:0)+S[S.length-k.length].length-k[0].length:this.yylloc.first_column-w},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-w]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(E){this.unput(this.match.slice(E))},"less"),pastInput:o(function(){var E=this.matched.substr(0,this.matched.length-this.match.length);return(E.length>20?"...":"")+E.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var E=this.match;return E.length<20&&(E+=this._input.substr(0,20-E.length)),(E.substr(0,20)+(E.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var E=this.pastInput(),w=new Array(E.length+1).join("-");return E+this.upcomingInput()+` +`+w+"^"},"showPosition"),test_match:o(function(E,w){var k,S,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),S=E[0].match(/(?:\r\n?|\n).*/g),S&&(this.yylineno+=S.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:S?S[S.length-1].length-S[S.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+E[0].length},this.yytext+=E[0],this.match+=E[0],this.matches=E,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(E[0].length),this.matched+=E[0],k=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),k)return k;if(this._backtrack){for(var L in A)this[L]=A[L];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var E,w,k,S;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),L=0;Lw[0].length)){if(w=k,S=L,this.options.backtrack_lexer){if(E=this.test_match(k,A[L]),E!==!1)return E;if(this._backtrack){w=!1;continue}else return!1}else if(!this.options.flex)break}return w?(E=this.test_match(w,A[S]),E!==!1?E:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var w=this.next();return w||this.lex()},"lex"),begin:o(function(w){this.conditionStack.push(w)},"begin"),popState:o(function(){var w=this.conditionStack.length-1;return w>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(w){return w=this.conditionStack.length-1-Math.abs(w||0),w>=0?this.conditionStack[w]:"INITIAL"},"topState"),pushState:o(function(w){this.begin(w)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(w,k,S,A){var L=A;switch(S){case 0:return w.getLogger().debug("Found block-beta"),10;break;case 1:return w.getLogger().debug("Found id-block"),29;break;case 2:return w.getLogger().debug("Found block"),10;break;case 3:w.getLogger().debug(".",k.yytext);break;case 4:w.getLogger().debug("_",k.yytext);break;case 5:return 5;case 6:return k.yytext=-1,28;break;case 7:return k.yytext=k.yytext.replace(/columns\s+/,""),w.getLogger().debug("COLUMNS (LEX)",k.yytext),28;break;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:w.getLogger().debug("LEX: POPPING STR:",k.yytext),this.popState();break;case 13:return w.getLogger().debug("LEX: STR end:",k.yytext),"STR";break;case 14:return k.yytext=k.yytext.replace(/space\:/,""),w.getLogger().debug("SPACE NUM (LEX)",k.yytext),21;break;case 15:return k.yytext="1",w.getLogger().debug("COLUMNS (LEX)",k.yytext),21;break;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;break;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 21:return this.popState(),this.pushState("CLASSDEFID"),40;break;case 22:return this.popState(),41;break;case 23:return this.pushState("CLASS"),43;break;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;break;case 25:return this.popState(),45;break;case 26:return this.pushState("STYLE_STMNT"),46;break;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;break;case 28:return this.popState(),48;break;case 29:return this.pushState("acc_title"),"acc_title";break;case 30:return this.popState(),"acc_title_value";break;case 31:return this.pushState("acc_descr"),"acc_descr";break;case 32:return this.popState(),"acc_descr_value";break;case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 38:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),w.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 40:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 41:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),w.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 43:return this.popState(),w.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 44:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 45:return this.popState(),w.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 46:return this.popState(),w.getLogger().debug("Lex: ("),"NODE_DEND";break;case 47:return this.popState(),w.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 48:return this.popState(),w.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 49:return this.popState(),w.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),w.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 51:return this.popState(),w.getLogger().debug("Lex: )"),"NODE_DEND";break;case 52:return this.popState(),w.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 53:return this.popState(),w.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 54:return w.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;break;case 55:return w.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;break;case 56:return w.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;break;case 57:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 58:return w.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;break;case 59:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 60:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 61:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 62:return w.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;break;case 63:return w.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;break;case 64:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 65:return this.pushState("NODE"),35;break;case 66:return this.pushState("NODE"),35;break;case 67:return this.pushState("NODE"),35;break;case 68:return this.pushState("NODE"),35;break;case 69:return this.pushState("NODE"),35;break;case 70:return this.pushState("NODE"),35;break;case 71:return this.pushState("NODE"),35;break;case 72:return w.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;break;case 73:return this.pushState("BLOCK_ARROW"),w.getLogger().debug("LEX ARR START"),37;break;case 74:return w.getLogger().debug("Lex: NODE_ID",k.yytext),31;break;case 75:return w.getLogger().debug("Lex: EOF",k.yytext),8;break;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:w.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:w.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return w.getLogger().debug("LEX: NODE_DESCR:",k.yytext),"NODE_DESCR";break;case 83:w.getLogger().debug("LEX POPPING"),this.popState();break;case 84:w.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (right): dir:",k.yytext),"DIR";break;case 86:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (left):",k.yytext),"DIR";break;case 87:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (x):",k.yytext),"DIR";break;case 88:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (y):",k.yytext),"DIR";break;case 89:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (up):",k.yytext),"DIR";break;case 90:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (down):",k.yytext),"DIR";break;case 91:return k.yytext="]>",w.getLogger().debug("Lex (ARROW_DIR end):",k.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 92:return w.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 93:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 94:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 95:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 96:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 97:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 98:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 99:this.pushState("md_string");break;case 100:return w.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 101:return this.popState(),w.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 102:return this.popState(),w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 103:return this.popState(),w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 104:return w.getLogger().debug("Lex: COLON",k.yytext),k.yytext=k.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return T})();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b})();pW.parser=pW;gSe=pW});function ndt(t){switch(K.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return K.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function idt(t){switch(K.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function adt(t){switch(t.replace(/^[\s-]+|[\s-]+$/g,"")){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}var Bc,gW,mW,vSe,xSe,Kft,TSe,Qft,y_,Zft,Jft,edt,tdt,wSe,yW,S3,rdt,bSe,sdt,odt,ldt,cdt,udt,hdt,fdt,ddt,pdt,mdt,gdt,kSe,ESe=O(()=>{"use strict";rI();$r();jt();xt();Ur();si();Bc=new Map,gW=[],mW=new Map,vSe="color",xSe="fill",Kft="bgFill",TSe=",",Qft=ve(),y_=new Map,Zft=o(t=>st.sanitizeText(t,Qft),"sanitizeText"),Jft=o(function(t,e=""){let r=y_.get(t);r||(r={id:t,styles:[],textStyles:[]},y_.set(t,r)),e?.split(TSe).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(vSe).exec(n)){let s=i.replace(xSe,Kft).replace(vSe,xSe);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),edt=o(function(t,e=""){let r=Bc.get(t);e!=null&&(r.styles=e.split(TSe))},"addStyle2Node"),tdt=o(function(t,e){t.split(",").forEach(function(r){let n=Bc.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},Bc.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),wSe=o((t,e)=>{let r=t.flat(),n=[],a=r.find(s=>s?.type==="column-setting")?.columns??-1;for(let s of r){if(typeof a=="number"&&a>0&&s.type!=="column-setting"&&typeof s.widthInColumns=="number"&&s.widthInColumns>a&&K.warn(`Block ${s.id} width ${s.widthInColumns} exceeds configured column width ${a}`),s.label&&(s.label=Zft(s.label)),s.type==="classDef"){Jft(s.id,s.css);continue}if(s.type==="applyClass"){tdt(s.id,s?.styleClass??"");continue}if(s.type==="applyStyles"){s?.stylesStr&&edt(s.id,s?.stylesStr);continue}if(s.type==="column-setting")e.columns=s.columns??-1;else if(s.type==="edge"){let l=(mW.get(s.id)??0)+1;mW.set(s.id,l),s.id=l+"-"+s.id,gW.push(s)}else{s.label||(s.type==="composite"?s.label="":s.label=s.id);let l=Bc.get(s.id);if(l===void 0?Bc.set(s.id,s):(s.type!=="na"&&(l.type=s.type),s.label!==s.id&&(l.label=s.label)),s.children&&wSe(s.children,s),s.type==="space"){let u=s.width??1;for(let h=0;h{K.debug("Clear called"),_r(),S3={id:"root",type:"composite",children:[],columns:-1},Bc=new Map([["root",S3]]),yW=[],y_=new Map,gW=[],mW=new Map},"clear");o(ndt,"typeStr2Type");o(idt,"edgeTypeStr2Type");o(adt,"edgeStrToEdgeData");bSe=0,sdt=o(()=>(bSe++,"id-"+Math.random().toString(36).substr(2,12)+"-"+bSe),"generateId"),odt=o(t=>{S3.children=t,wSe(t,S3),yW=S3.children},"setHierarchy"),ldt=o(t=>{let e=Bc.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),cdt=o(()=>[...Bc.values()],"getBlocksFlat"),udt=o(()=>yW||[],"getBlocks"),hdt=o(()=>gW,"getEdges"),fdt=o(t=>Bc.get(t),"getBlock"),ddt=o(t=>{Bc.set(t.id,t)},"setBlock"),pdt=o(()=>K,"getLogger"),mdt=o(function(){return y_},"getClasses"),gdt={getConfig:o(()=>Zt().block,"getConfig"),typeStr2Type:ndt,edgeTypeStr2Type:idt,edgeStrToEdgeData:adt,getLogger:pdt,getBlocksFlat:cdt,getBlocks:udt,getEdges:hdt,setHierarchy:odt,getBlock:fdt,setBlock:ddt,getColumns:ldt,getClasses:mdt,clear:rdt,generateId:sdt},kSe=gdt});var vW,ydt,SSe,CSe=O(()=>{"use strict";Ys();ly();vW=o((t,e)=>{let r=_p,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return bs(n,i,a,e)},"fade"),ydt=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + /* + * This is for backward compatibility with existing code that didn't + * add a \`

    \` around edge labels. + * + * TODO: We should probably remove this in a future release. + */ + p { + margin: 0; + padding: 0; + display: inline; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${t.edgeLabelBackground}; + } + + .node .cluster { + // fill: ${vW(t.mainBkg,.5)}; + fill: ${vW(t.clusterBkg,.5)}; + stroke: ${vW(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + ${Lu()} +`,"getStyles"),SSe=ydt});var vdt,xdt,bdt,Tdt,wdt,kdt,Edt,Sdt,Cdt,Adt,_dt,ASe,_Se=O(()=>{"use strict";xt();vdt=o((t,e,r,n)=>{e.forEach(i=>{_dt[i](t,r,n)})},"insertMarkers"),xdt=o((t,e,r)=>{K.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),bdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Tdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),wdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),kdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Edt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),Sdt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),Cdt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),Adt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),_dt={extension:xdt,composition:bdt,aggregation:Tdt,dependency:wdt,lollipop:kdt,point:Edt,circle:Sdt,cross:Cdt,barb:Adt},ASe=vdt});function DSe(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function xW(t,e,r=0,n=0){K.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"siblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)xW(m,e);let s=Ddt(t);i=s.width,a=s.height,K.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(K.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+$i*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,K.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)xW(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*$i-$i)/m;K.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}K.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function RSe(t,e){K.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(K.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*$i;K.debug("widthOfChildren 88",i,"posX");let a=new Map;{let f=0;for(let d of t.children){if(!d.size)continue;let{py:p}=DSe(r,f),m=a.get(p)??0;d.size.height>m&&a.set(p,d.size.height);let g=d?.widthInColumns??1;r>0&&(g=Math.min(g,r-f%r)),f+=g}}let s=new Map;{let f=0,d=[...a.keys()].sort((p,m)=>p-m);for(let p of d)s.set(p,f),f+=(a.get(p)??0)+$i}let l=0;K.debug("abc91 block?.size?.x",t.id,t?.size?.x);let u=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-$i,h=0;for(let f of t.children){let d=t;if(!f.size)continue;let{width:p,height:m}=f.size,{px:g,py:y}=DSe(r,l);if(y!=h&&(h=y,u=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-$i,K.debug("New row in layout for block",t.id," and child ",f.id,h)),K.debug(`abc89 layout blocks (child) id: ${f.id} Pos: ${l} (px, py) ${g},${y} (${d?.size?.x},${d?.size?.y}) parent: ${d.id} width: ${p}${$i}`),d.size){let x=p/2;f.size.x=u+$i+x,K.debug(`abc91 layout blocks (calc) px, pyid:${f.id} startingPos=X${u} new startingPosX${f.size.x} ${x} padding=${$i} width=${p} halfWidth=${x} => x:${f.size.x} y:${f.size.y} ${f.widthInColumns} (width * (child?.w || 1)) / 2 ${p*(f?.widthInColumns??1)/2}`),u=f.size.x+x;let b=s.get(y)??0,T=a.get(y)??m;f.size.y=d.size.y-d.size.height/2+b+T/2+$i,K.debug(`abc88 layout blocks (calc) px, pyid:${f.id}startingPosX${u}${$i}${x}=>x:${f.size.x}y:${f.size.y}${f.widthInColumns}(width * (child?.w || 1)) / 2${p*(f?.widthInColumns??1)/2}`)}f.children&&RSe(f,e);let v=f?.widthInColumns??1;r>0&&(v=Math.min(v,r-l%r)),l+=v,K.debug("abc88 columnsPos",f,l)}}K.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function LSe(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=LSe(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function NSe(t){let e=t.getBlock("root");if(!e)return;xW(e,t,0,0),RSe(e,t),K.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=LSe(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var $i,Ddt,MSe=O(()=>{"use strict";xt();jt();$i=ve()?.block?.padding??8;o(DSe,"calculateBlockPosition");Ddt=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};K.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(n.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(xW,"setBlockSizes");o(RSe,"layoutBlocks");o(LSe,"findBounds");o(NSe,"layout")});var Rdt,Lo,v_=O(()=>{"use strict";$r();jt();co();Rdt=o(async(t,e,r,n=!1,i=!1)=>{let a=e||"";typeof a=="object"&&(a=a[0]);let s=ve(),l=Sr(s);return await Fn(t,a,{style:r,isTitle:n,useHtmlLabels:l,markdown:!1,isNode:i,width:Number.POSITIVE_INFINITY},s)},"createLabel"),Lo=Rdt});var OSe,Ldt,ISe,PSe=O(()=>{"use strict";xt();OSe=o((t,e,r,n,i)=>{e.arrowTypeStart&&ISe(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&ISe(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),Ldt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},ISe=o((t,e,r,n,i,a)=>{let s=Ldt[r];if(!s){K.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function x_(t,e){Sr(ve())&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var bW,ys,FSe,$Se,Ndt,Mdt,BSe,zSe,GSe=O(()=>{"use strict";xt();v_();co();BM();Ar();jt();$r();ar();Ur();$M();gb();PSe();bW={},ys={},FSe=o(async(t,e)=>{let r=ve(),n=Sr(r),i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label"),s=e.labelType==="markdown",l=await Fn(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:s,isNode:!1,markdown:s,width:s?void 0:Number.POSITIVE_INFINITY},r);a.node().appendChild(l);let u=l.getBBox(),h=u;if(n){let d=l.children[0],p=je(l);u=d.getBoundingClientRect(),h=u,p.attr("width",u.width),p.attr("height",u.height)}else{let d=je(l).select("text").node();d&&typeof d.getBBox=="function"&&(h=d.getBBox())}a.attr("transform",Cl(h,n)),bW[e.id]=i,e.width=u.width,e.height=u.height;let f;if(e.startLabelLeft){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(p,e.startLabelLeft,e.labelStyle);f=m;let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),ys[e.id]||(ys[e.id]={}),ys[e.id].startLeft=d,x_(f,e.startLabelLeft)}if(e.startLabelRight){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(d,e.startLabelRight,e.labelStyle);f=m,p.node().appendChild(m);let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),ys[e.id]||(ys[e.id]={}),ys[e.id].startRight=d,x_(f,e.startLabelRight)}if(e.endLabelLeft){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(p,e.endLabelLeft,e.labelStyle);f=m;let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),d.node().appendChild(m),ys[e.id]||(ys[e.id]={}),ys[e.id].endLeft=d,x_(f,e.endLabelLeft)}if(e.endLabelRight){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(p,e.endLabelRight,e.labelStyle);f=m;let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),d.node().appendChild(m),ys[e.id]||(ys[e.id]={}),ys[e.id].endRight=d,x_(f,e.endLabelRight)}return l},"insertEdgeLabel");o(x_,"setTerminalWidth");$Se=o((t,e)=>{K.debug("Moving label abc88 ",t.id,t.label,bW[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=ve(),{subGraphTitleTotalMargin:i}=Lh(n);if(t.label){let a=bW[t.id],s=t.x,l=t.y;if(r){let u=Xt.calcLabelPosition(r);K.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=ys[t.id].startLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=ys[t.id].startRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=ys[t.id].endLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=ys[t.id].endRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),Ndt=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),Mdt=o((t,e,r)=>{K.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{K.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!Ndt(e,a)&&!i){let s=Mdt(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),zSe=o(function(t,e,r,n,i,a,s){let l=r.points;K.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(K.debug("to cluster abc88",n[r.toCluster]),l=BSe(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(K.debug("from cluster abc88",n[r.fromCluster]),l=BSe(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(E=>!Number.isNaN(E.y)),p=fc;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=cE(r),y=hc().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(ve().flowchart.arrowMarkerAbsolute||ve().state.arrowMarkerAbsolute)&&(b=Op(!0)),OSe(x,r,b,s,i);let T={};return u&&(T.updatedPath=l),T.originalPath=r.points,T},"insertEdge")});var Idt,VSe,qSe=O(()=>{"use strict";Idt=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),VSe=o((t,e,r)=>{let n=Idt(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function Odt(t,e){return t.intersect(e)}var USe,WSe=O(()=>{"use strict";o(Odt,"intersectNode");USe=Odt});function Pdt(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(Pdt,"intersectEllipse");b_=Pdt});function Bdt(t,e,r){return b_(t,e,e,r)}var HSe,YSe=O(()=>{"use strict";TW();o(Bdt,"intersectCircle");HSe=Bdt});function Fdt(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&jSe(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&jSe(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function jSe(t,e){return t*e>0}var XSe,KSe=O(()=>{"use strict";o(Fdt,"intersectLine");o(jSe,"sameSign");XSe=Fdt});function $dt(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),T=y.x-r.x,E=y.y-r.y,w=Math.sqrt(T*T+E*E);return b{"use strict";KSe();QSe=$dt;o($dt,"intersectPolygon")});var zdt,JSe,eCe=O(()=>{"use strict";zdt=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),JSe=zdt});var Zn,wW=O(()=>{"use strict";WSe();YSe();TW();ZSe();eCe();Zn={node:USe,circle:HSe,ellipse:b_,polygon:QSe,rect:JSe}});function Fc(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var ji,gi,kW=O(()=>{"use strict";v_();co();jt();$r();Ar();Ur();ar();dM();ji=o(async(t,e,r,n)=>{let i=ve(),a,s=e.useHtmlLabels||Sr(i);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f;e.labelType==="markdown"?f=Fn(u,wr(ao(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):f=await Lo(u,wr(ao(h),i),e.labelStyle,!1,n);let d=f.getBBox(),p=e.padding/2;if(Sr(i)){let m=f.children[0],g=je(f);await Wk(m,h),d=m.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}return s?u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):u.attr("transform","translate(0, "+-d.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:d,halfPadding:p,label:u}},"labelHelper"),gi=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(Fc,"insertPolygonShape")});var Gdt,tCe,rCe=O(()=>{"use strict";kW();xt();jt();$r();wW();Gdt=o(async(t,e)=>{e.useHtmlLabels||Sr(ve())||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await ji(t,e,"node "+e.classes,!0);K.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),gi(e,s),e.intersect=function(l){return Zn.rect(e,l)},n},"note"),tCe=Gdt});function EW(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(K.debug("add top border"),a(r)):s(r),e.includes("r")?(K.debug("add right border"),a(n)):s(n),e.includes("b")?(K.debug("add bottom border"),a(r)):s(r),e.includes("l")?(K.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var nCe,sl,iCe,Vdt,qdt,Udt,Wdt,Hdt,Ydt,jdt,Xdt,Kdt,Qdt,Zdt,Jdt,ept,tpt,rpt,npt,ipt,apt,spt,aCe,opt,lpt,sCe,T_,SW,oCe,lCe=O(()=>{"use strict";Ar();jt();$r();xt();qSe();v_();wW();rCe();kW();nCe=o(t=>t?" "+t:"","formatClass"),sl=o((t,e)=>`${e||"node default"}${nCe(t.classes)} ${nCe(t.class)}`,"getClassesFromNode"),iCe=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];K.info("Question main (Circle)");let u=Fc(r,s,s,l);return u.attr("style",e.style),gi(e,u),e.intersect=function(h){return K.warn("Intersect called"),Zn.polygon(e,l,h)},r},"question"),Vdt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return Zn.circle(e,14,s)},r},"choice"),qdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Fc(r,l,a,u);return h.attr("style",e.style),gi(e,h),e.intersect=function(f){return Zn.polygon(e,u,f)},r},"hexagon"),Udt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=VSe(e.directions,n,e),h=Fc(r,l,a,u);return h.attr("style",e.style),gi(e,h),e.intersect=function(f){return Zn.polygon(e,u,f)},r},"block_arrow"),Wdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Fc(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return Zn.polygon(e,s,u)},r},"rect_left_inv_arrow"),Hdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"lean_right"),Ydt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"lean_left"),jdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"trapezoid"),Xdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"inv_trapezoid"),Kdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"rect_right_inv_arrow"),Qdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return gi(e,h),e.intersect=function(f){let d=Zn.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),Zdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(EW(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{K.warn(`Unknown node property ${d}`)})}return gi(e,a),e.intersect=function(f){return Zn.rect(e,f)},r},"rect"),Jdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(EW(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{K.warn(`Unknown node property ${d}`)})}return gi(e,a),e.intersect=function(f){return Zn.rect(e,f)},r},"composite"),ept=o(async(t,e)=>{let{shapeSvg:r}=await ji(t,e,"label",!0);K.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(EW(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{K.warn(`Unknown node property ${l}`)})}return gi(e,n),e.intersect=function(s){return Zn.rect(e,s)},r},"labelRect");o(EW,"applyNodePropertyBorders");tpt=o(async(t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,K.info("Label text abc79",u,l,typeof l=="object");let h=await Lo(s,u,e.labelStyle,!0,!0),f={width:0,height:0};if(Sr(ve())){let y=h.children[0],v=je(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}K.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=await Lo(s,d.join?d.join("
    "):d,e.labelStyle,!0,!0);if(Sr(ve())){let y=m.children[0],v=je(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return je(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),je(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return gi(e,s),e.intersect=function(l){return Zn.rect(e,l)},r},"stadium"),npt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,sl(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),K.info("Circle main"),gi(e,a),e.intersect=function(s){return K.info("Circle intersect",e,n.width/2+i,s),Zn.circle(e,n.width/2+i,s)},r},"circle"),ipt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,sl(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),K.info("DoubleCircle main"),gi(e,l),e.intersect=function(h){return K.info("DoubleCircle intersect",e,n.width/2+i+a,h),Zn.circle(e,n.width/2+i+a,h)},r},"doublecircle"),apt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"subroutine"),spt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),gi(e,n),e.intersect=function(i){return Zn.circle(e,7,i)},r},"start"),aCe=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return gi(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return Zn.rect(e,l)},n},"forkJoin"),opt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),gi(e,i),e.intersect=function(a){return Zn.circle(e,7,a)},r},"end"),lpt=o(async(t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=await Lo(p,y,e.labelStyle,!0,!0),x=v.getBBox();if(Sr(ve())){let A=v.children[0],L=je(v);x=A.getBoundingClientRect(),L.attr("width",x.width),L.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(Sr(ve())?b+="<"+e.classData.type+">":b+="<"+e.classData.type+">");let T=await Lo(p,b,e.labelStyle,!0,!0);je(T).attr("class","classTitle");let E=T.getBBox();if(Sr(ve())){let A=T.children[0],L=je(T);E=A.getBoundingClientRect(),L.attr("width",E.width),L.attr("height",E.height)}d+=E.height+n,E.width>f&&(f=E.width);let w=[];e.classData.members.forEach(async A=>{let L=A.getDisplayDetails(),I=L.displayText;Sr(ve())&&(I=I.replace(//g,">"));let N=await Lo(p,I,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0),C=N.getBBox();if(Sr(ve())){let _=N.children[0],D=je(N);C=_.getBoundingClientRect(),D.attr("width",C.width),D.attr("height",C.height)}C.width>f&&(f=C.width),d+=C.height+n,w.push(N)}),d+=i;let k=[];if(e.classData.methods.forEach(async A=>{let L=A.getDisplayDetails(),I=L.displayText;Sr(ve())&&(I=I.replace(//g,">"));let N=await Lo(p,I,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0),C=N.getBBox();if(Sr(ve())){let _=N.children[0],D=je(N);C=_.getBoundingClientRect(),D.attr("width",C.width),D.attr("height",C.height)}C.width>f&&(f=C.width),d+=C.height+n,k.push(N)}),d+=i,g){let A=(f-x.width)/2;je(v).attr("transform","translate( "+(-1*f/2+A)+", "+-1*d/2+")"),m=x.height+n}let S=(f-E.width)/2;return je(T).attr("transform","translate( "+(-1*f/2+S)+", "+(-1*d/2+m)+")"),m+=E.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,w.forEach(A=>{je(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,k.forEach(A=>{je(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),gi(e,l),e.intersect=function(A){return Zn.rect(e,A)},s},"class_box"),sCe={rhombus:iCe,composite:Jdt,question:iCe,rect:Zdt,labelRect:ept,rectWithTitle:tpt,choice:Vdt,circle:npt,doublecircle:ipt,stadium:rpt,hexagon:qdt,block_arrow:Udt,rect_left_inv_arrow:Wdt,lean_right:Hdt,lean_left:Ydt,trapezoid:jdt,inv_trapezoid:Xdt,rect_right_inv_arrow:Kdt,cylinder:Qdt,start:spt,end:opt,note:tCe,subroutine:apt,fork:aCe,join:aCe,class_box:lpt},T_={},SW=o(async(t,e,r)=>{let n,i;if(e.link){let a;ve().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await sCe[e.shape](n,e,r)}else i=await sCe[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),T_[e.id]=n,e.haveCallback&&T_[e.id].attr("class",T_[e.id].attr("class")+" clickable"),n},"insertNode"),oCe=o(t=>{let e=T_[t.id];K.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});function cCe(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=RN(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Zt()?.block?.padding??0}}async function cpt(t,e,r){let n=cCe(e,r,!1);if(n.type==="group")return;let i=Zt(),a=await SW(t,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function upt(t,e,r){let n=cCe(e,r,!0);if(r.getBlock(n.id).type!=="space"){let a=Zt();await SW(t,n,{config:a}),e.intersect=n?.intersect,oCe(n)}}async function CW(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await CW(t,i.children,r,n)}async function uCe(t,e,r){await CW(t,e,r,cpt)}async function hCe(t,e,r){await CW(t,e,r,upt)}async function fCe(t,e,r,n,i){let a=new wn({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];zSe(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await FSe(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),$Se({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var dCe=O(()=>{"use strict";Dl();$r();GSe();lCe();ar();o(cCe,"getNodeFromBlock");o(cpt,"calculateBlockSize");o(upt,"insertBlockPositioned");o(CW,"performOperations");o(uCe,"calculateBlockSizes");o(hCe,"insertBlocks");o(fCe,"insertEdges")});var hpt,fpt,pCe,mCe=O(()=>{"use strict";Ar();$r();_Se();xt();Ti();MSe();dCe();hpt=o(function(t,e){return e.db.getClasses()},"getClasses"),fpt=o(async function(t,e,r,n){let{securityLevel:i,block:a}=Zt(),s=n.db,l;i==="sandbox"&&(l=je("#i"+e));let u=i==="sandbox"?je(l.nodes()[0].contentDocument.body):je("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):je(`[id="${e}"]`);ASe(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await uCe(g,d,s);let y=NSe(s);if(await hCe(g,d,s),await fCe(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,T=v.width+10,{useMaxWidth:E}=a;Zr(h,b,T,!!E),K.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),pCe={draw:fpt,getClasses:hpt}});var gCe={};vr(gCe,{diagram:()=>dpt});var dpt,yCe=O(()=>{"use strict";ySe();ESe();CSe();mCe();dpt={parser:gSe,db:kSe,renderer:pCe,styles:SSe}});var AW,_W,C3,bCe,DW,vs,Zu,A3,TCe,ypt,_3,wCe,kCe,ECe,SCe,CCe,w_,Tp,k_=O(()=>{"use strict";AW={L:"left",R:"right",T:"top",B:"bottom"},_W={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},C3={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},bCe=o(function(t){return vs(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),DW=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),vs=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),Zu=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),A3=o(function(t,e){let r=vs(t)&&Zu(e),n=Zu(t)&&vs(e);return r||n},"isArchitectureDirectionXY"),TCe=o(function(t){let e=t[0],r=t[1],n=vs(e)&&Zu(r),i=Zu(e)&&vs(r);return n||i},"isArchitecturePairXY"),ypt=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),_3=o(function(t,e){let r=`${t}${e}`;return ypt(r)?r:void 0},"getArchitectureDirectionPair"),wCe=o(function([t,e],r){let n=r[0],i=r[1];return vs(n)?Zu(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:vs(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),kCe=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),ECe=o(function(t,e){return A3(t,e)?"bend":vs(t)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),SCe=o(function(t){return t.type==="service"},"isArchitectureService"),CCe=o(function(t){return t.type==="junction"},"isArchitectureJunction"),w_=o(t=>t.data(),"edgeData"),Tp=o(t=>t.data(),"nodeData")});var vpt,Kv,RW=O(()=>{"use strict";$r();La();ar();si();k_();vpt=gr.architecture,Kv=class{constructor(){this.nodes={};this.groups={};this.edges=[];this.registeredIds={};this.elements={};this.setAccTitle=Lr;this.getAccTitle=Or;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getAccDescription=Br;this.setAccDescription=Pr;this.clear()}static{o(this,"ArchitectureDB")}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},_r()}addService({id:e,icon:r,in:n,title:i,iconText:a}){if(this.registeredIds[e]!==void 0)throw new Error(`The service id [${e}] is already in use by another ${this.registeredIds[e]}`);if(n!==void 0){if(e===n)throw new Error(`The service [${e}] cannot be placed within itself`);if(this.registeredIds[n]===void 0)throw new Error(`The service [${e}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[n]==="node")throw new Error(`The service [${e}]'s parent is not a group`)}this.registeredIds[e]="node",this.nodes[e]={id:e,type:"service",icon:r,iconText:a,title:i,edges:[],in:n}}getServices(){return Object.values(this.nodes).filter(SCe)}addJunction({id:e,in:r}){if(this.registeredIds[e]!==void 0)throw new Error(`The junction id [${e}] is already in use by another ${this.registeredIds[e]}`);if(r!==void 0){if(e===r)throw new Error(`The junction [${e}] cannot be placed within itself`);if(this.registeredIds[r]===void 0)throw new Error(`The junction [${e}]'s parent does not exist. Please make sure the parent is created before this junction`);if(this.registeredIds[r]==="node")throw new Error(`The junction [${e}]'s parent is not a group`)}this.registeredIds[e]="node",this.nodes[e]={id:e,type:"junction",edges:[],in:r}}getJunctions(){return Object.values(this.nodes).filter(CCe)}getNodes(){return Object.values(this.nodes)}getNode(e){return this.nodes[e]??null}addGroup({id:e,icon:r,in:n,title:i}){if(this.registeredIds?.[e]!==void 0)throw new Error(`The group id [${e}] is already in use by another ${this.registeredIds[e]}`);if(n!==void 0){if(e===n)throw new Error(`The group [${e}] cannot be placed within itself`);if(this.registeredIds?.[n]===void 0)throw new Error(`The group [${e}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[n]==="node")throw new Error(`The group [${e}]'s parent is not a group`)}this.registeredIds[e]="group",this.groups[e]={id:e,icon:r,title:i,in:n}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:e,rhsId:r,lhsDir:n,rhsDir:i,lhsInto:a,rhsInto:s,lhsGroup:l,rhsGroup:u,title:h}){if(!DW(n))throw new Error(`Invalid direction given for left hand side of edge ${e}--${r}. Expected (L,R,T,B) got ${String(n)}`);if(!DW(i))throw new Error(`Invalid direction given for right hand side of edge ${e}--${r}. Expected (L,R,T,B) got ${String(i)}`);if(this.nodes[e]===void 0&&this.groups[e]===void 0)throw new Error(`The left-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[r]===void 0&&this.groups[r]===void 0)throw new Error(`The right-hand id [${r}] does not yet exist. Please create the service/group before declaring an edge to it.`);let f=this.nodes[e].in,d=this.nodes[r].in;if(l&&f&&d&&f==d)throw new Error(`The left-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(u&&f&&d&&f==d)throw new Error(`The right-hand id [${r}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let p={lhsId:e,lhsDir:n,lhsInto:a,lhsGroup:l,rhsId:r,rhsDir:i,rhsInto:s,rhsGroup:u,title:h};this.edges.push(p),this.nodes[e]&&this.nodes[r]&&(this.nodes[e].edges.push(this.edges[this.edges.length-1]),this.nodes[r].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){let e={},r=Object.entries(this.nodes).reduce((u,[h,f])=>(u[h]=f.edges.reduce((d,p)=>{let m=this.getNode(p.lhsId)?.in,g=this.getNode(p.rhsId)?.in;if(m&&g&&m!==g){let y=ECe(p.lhsDir,p.rhsDir);y!=="bend"&&(e[m]??={},e[m][g]=y,e[g]??={},e[g][m]=y)}if(p.lhsId===h){let y=_3(p.lhsDir,p.rhsDir);y&&(d[y]=p.rhsId)}else{let y=_3(p.rhsDir,p.lhsDir);y&&(d[y]=p.lhsId)}return d},{}),u),{}),n=Object.keys(r)[0],i={[n]:1},a=Object.keys(r).reduce((u,h)=>h===n?u:{...u,[h]:1},{}),s=o(u=>{let h={[u]:[0,0]},f=[u];for(;f.length>0;){let d=f.shift();if(d){i[d]=1,delete a[d];let p=r[d],[m,g]=h[d];Object.entries(p).forEach(([y,v])=>{i[v]||(h[v]=wCe([m,g],y),f.push(v))})}}return h},"BFS"),l=[s(n)];for(;Object.keys(a).length>0;)l.push(s(Object.keys(a)[0]));this.dataStructures={adjList:r,spatialMaps:l,groupAlignments:e}}return this.dataStructures}setElementForId(e,r){this.elements[e]=r}getElementById(e){return this.elements[e]}getConfig(){return Pn({...vpt,...Zt().architecture})}getConfigField(e){return this.getConfig()[e]}}});var xpt,LW,ACe=O(()=>{"use strict";up();xt();Vm();RW();xpt=o((t,e)=>{ql(t,e),t.groups.map(r=>e.addGroup(r)),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(r=>e.addEdge(r))},"populateDb"),LW={parser:{yy:void 0},parse:o(async t=>{let e=await Us("architecture",t);K.debug(e);let r=LW.parser?.yy;if(!(r instanceof Kv))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");xpt(e,r)},"parse")}});var bpt,_Ce,DCe=O(()=>{"use strict";bpt=o(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),_Ce=bpt});var MW=nr((D3,NW)=>{"use strict";o((function(e,r){typeof D3=="object"&&typeof NW=="object"?NW.exports=r():typeof define=="function"&&define.amd?define([],r):typeof D3=="object"?D3.layoutBase=r():e.layoutBase=r()}),"webpackUniversalModuleDefinition")(D3,function(){return(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)})([(function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s}),(function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h}),(function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i}),(function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(w,1),x.target!=x.source&&x.target.edges.splice(k,1);var E=x.source.owner.getEdges().indexOf(x);if(E==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(E,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,T=this.getNodes(),E=T.length,w=0;wv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,T,E,w,k,S,A=this.nodes,L=A.length,I=0;IT&&(y=T),vw&&(x=w),bT&&(y=T),vw&&(x=w),b=this.nodes.length){var L=0;v.forEach(function(I){I.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p}),(function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=k,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,C=!0):(l[0]=g,l[1]=m,C=!0):D===R&&(u>f?(l[0]=p,l[1]=m,C=!0):(l[0]=x,l[1]=v,C=!0)),-M===R?f>u?(l[2]=S,l[3]=A,_=!0):(l[2]=k,l[3]=w,_=!0):M===R&&(f>u?(l[2]=E,l[3]=w,_=!0):(l[2]=L,l[3]=A,_=!0)),C&&_)return!1;if(u>f?h>d?(P=this.getCardinalDirection(D,R,4),B=this.getCardinalDirection(M,R,2)):(P=this.getCardinalDirection(-D,R,3),B=this.getCardinalDirection(-M,R,1)):h>d?(P=this.getCardinalDirection(-D,R,1),B=this.getCardinalDirection(-M,R,3)):(P=this.getCardinalDirection(D,R,2),B=this.getCardinalDirection(M,R,4)),!C)switch(P){case 1:G=m,F=u+-T/R,l[0]=F,l[1]=G;break;case 2:F=x,G=h+b*R,l[0]=F,l[1]=G;break;case 3:G=v,F=u+T/R,l[0]=F,l[1]=G;break;case 4:F=y,G=h+-b*R,l[0]=F,l[1]=G;break}if(!_)switch(B){case 1:V=w,$=f+-N/R,l[2]=$,l[3]=V;break;case 2:$=L,V=d+I*R,l[2]=$,l[3]=V;break;case 3:V=A,$=f+N/R,l[2]=$,l[3]=V;break;case 4:$=S,V=d+-I*R,l[2]=$,l[3]=V;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,E=void 0,w=void 0,k=void 0,S=void 0,A=void 0,L=void 0;return T=p-f,w=h-d,S=d*f-h*p,E=v-g,k=m-y,A=y*g-m*v,L=T*k-E*w,L===0?null:(x=(w*A-k*S)/L,b=(E*S-T*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i}),(function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n}),(function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i}),(function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(w[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var S=k.getEdges(),x=0;x-1&&w.splice(N,1)}b=new Set,E=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=E.getNeighborsList();L.forEach(function(C){if(y.indexOf(C)<0){var _=v.get(C),D=_-1;D==1&&k.push(C),v.set(C,D)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p}),(function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n}),(function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i}),(function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||T>=x[0].length)){for(var E=0;Eh},"_defaultCompareFunction")}]),l})();t.exports=s}),(function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=(function(Rt){for(var it=[];Rt-- >0;)it.push(0);return it})(Math.min(this.m+1,this.n)),this.U=(function(Rt){var it=o(function at(Ct){if(Ct.length==0)return 0;for(var yt=[],dt=0;dt0;)it.push(0);return it})(this.n),l=(function(Rt){for(var it=[];Rt-- >0;)it.push(0);return it})(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;R--)if(this.s[R]!==0){for(var P=R+1;P=0;Q--){if((function(Rt,it){return Rt&&it})(Q0;){var de=void 0,Se=void 0;for(de=_-2;de>=-1&&de!==-1;de--)if(Math.abs(s[de])<=xe+Z*(Math.abs(this.s[de])+Math.abs(this.s[de+1]))){s[de]=0;break}if(de===_-2)Se=4;else{var Me=void 0;for(Me=_-1;Me>=de&&Me!==de;Me--){var ke=(Me!==_?Math.abs(s[Me]):0)+(Me!==de+1?Math.abs(s[Me-1]):0);if(Math.abs(this.s[Me])<=xe+Z*ke){this.s[Me]=0;break}}Me===de?Se=3:Me===_-1?Se=1:(Se=2,de=Me)}switch(de++,Se){case 1:{var we=s[_-2];s[_-2]=0;for(var _e=_-2;_e>=de;_e--){var $e=n.hypot(this.s[_e],we),fe=this.s[_e]/$e,Ke=we/$e;if(this.s[_e]=$e,_e!==de&&(we=-Ke*s[_e-1],s[_e-1]=fe*s[_e-1]),h)for(var Te=0;Te=this.s[de+1]);){var ot=this.s[de];if(this.s[de]=this.s[de+1],this.s[de+1]=ot,h&&deMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o((function(e,r){typeof R3=="object"&&typeof IW=="object"?IW.exports=r(MW()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof R3=="object"?R3.coseBase=r(MW()):e.coseBase=r(e.layoutBase)}),"webpackUniversalModuleDefinition")(R3,function(t){return(()=>{"use strict";var e={45:((a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u}),806:((a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h}),767:((a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),880:((a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),578:((a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),765:((a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,T=l(551).DimensionD,E=l(551).Layout,w=l(551).Integer,k=l(551).IGeometry,S=l(551).LGraph,A=l(551).Transform,L=l(551).LinkedList;function I(){u.call(this),this.toBeTiled={},this.constraints={}}o(I,"CoSELayout"),I.prototype=Object.create(u.prototype);for(var N in u)I[N]=u[N];I.prototype.newGraphManager=function(){var C=new h(this);return this.graphManager=C,C},I.prototype.newGraph=function(C){return new f(null,this.graphManager,C)},I.prototype.newNode=function(C){return new d(this.graphManager,C)},I.prototype.newEdge=function(C){return new p(null,null,C)},I.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var C=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return C&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},I.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),D=this.nodesWithGravity.filter(function(P){return _.has(P)});this.graphManager.setAllNodesToApplyGravitation(D)}}else{var C=this.getFlatForest();if(C.length>0)this.positionNodesRadially(C);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),D=this.nodesWithGravity.filter(function(M){return _.has(M)});this.graphManager.setAllNodesToApplyGravitation(D),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},I.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var C=new Set(this.getAllNodes()),_=this.nodesWithGravity.filter(function(R){return C.has(R)});this.graphManager.setAllNodesToApplyGravitation(_),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var D=!this.isTreeGrowing&&!this.isGrowthFinished,M=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(D,M),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var C=this.graphManager.getAllNodes(),_={},D=0;D0&&this.updateDisplacements();for(var D=0;D0&&(M.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var B=new Map,F=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(Y){C.fixedNodesOnHorizontal.add(Y),C.fixedNodesOnVertical.add(Y)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var G=this.constraints.alignmentConstraint.vertical,D=0;D=2*Y.length/3;J--)le=Math.floor(Math.random()*(J+1)),ee=Y[J],Y[J]=Y[le],Y[le]=ee;return Y},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(Y){if(Y.left){var le=B.has(Y.left)?B.get(Y.left):Y.left,ee=B.has(Y.right)?B.get(Y.right):Y.right;C.nodesInRelativeHorizontal.includes(le)||(C.nodesInRelativeHorizontal.push(le),C.nodeToRelativeConstraintMapHorizontal.set(le,[]),C.dummyToNodeForVerticalAlignment.has(le)?C.nodeToTempPositionMapHorizontal.set(le,C.idToNodeMap.get(C.dummyToNodeForVerticalAlignment.get(le)[0]).getCenterX()):C.nodeToTempPositionMapHorizontal.set(le,C.idToNodeMap.get(le).getCenterX())),C.nodesInRelativeHorizontal.includes(ee)||(C.nodesInRelativeHorizontal.push(ee),C.nodeToRelativeConstraintMapHorizontal.set(ee,[]),C.dummyToNodeForVerticalAlignment.has(ee)?C.nodeToTempPositionMapHorizontal.set(ee,C.idToNodeMap.get(C.dummyToNodeForVerticalAlignment.get(ee)[0]).getCenterX()):C.nodeToTempPositionMapHorizontal.set(ee,C.idToNodeMap.get(ee).getCenterX())),C.nodeToRelativeConstraintMapHorizontal.get(le).push({right:ee,gap:Y.gap}),C.nodeToRelativeConstraintMapHorizontal.get(ee).push({left:le,gap:Y.gap})}else{var J=F.has(Y.top)?F.get(Y.top):Y.top,te=F.has(Y.bottom)?F.get(Y.bottom):Y.bottom;C.nodesInRelativeVertical.includes(J)||(C.nodesInRelativeVertical.push(J),C.nodeToRelativeConstraintMapVertical.set(J,[]),C.dummyToNodeForHorizontalAlignment.has(J)?C.nodeToTempPositionMapVertical.set(J,C.idToNodeMap.get(C.dummyToNodeForHorizontalAlignment.get(J)[0]).getCenterY()):C.nodeToTempPositionMapVertical.set(J,C.idToNodeMap.get(J).getCenterY())),C.nodesInRelativeVertical.includes(te)||(C.nodesInRelativeVertical.push(te),C.nodeToRelativeConstraintMapVertical.set(te,[]),C.dummyToNodeForHorizontalAlignment.has(te)?C.nodeToTempPositionMapVertical.set(te,C.idToNodeMap.get(C.dummyToNodeForHorizontalAlignment.get(te)[0]).getCenterY()):C.nodeToTempPositionMapVertical.set(te,C.idToNodeMap.get(te).getCenterY())),C.nodeToRelativeConstraintMapVertical.get(J).push({bottom:te,gap:Y.gap}),C.nodeToRelativeConstraintMapVertical.get(te).push({top:J,gap:Y.gap})}});else{var V=new Map,X=new Map;this.constraints.relativePlacementConstraint.forEach(function(Y){if(Y.left){var le=B.has(Y.left)?B.get(Y.left):Y.left,ee=B.has(Y.right)?B.get(Y.right):Y.right;V.has(le)?V.get(le).push(ee):V.set(le,[ee]),V.has(ee)?V.get(ee).push(le):V.set(ee,[le])}else{var J=F.has(Y.top)?F.get(Y.top):Y.top,te=F.has(Y.bottom)?F.get(Y.bottom):Y.bottom;X.has(J)?X.get(J).push(te):X.set(J,[te]),X.has(te)?X.get(te).push(J):X.set(te,[J])}});var Q=o(function(le,ee){var J=[],te=[],Z=new L,xe=new Set,de=0;return le.forEach(function(Se,Me){if(!xe.has(Me)){J[de]=[],te[de]=!1;var ke=Me;for(Z.push(ke),xe.add(ke),J[de].push(ke);Z.length!=0;){ke=Z.shift(),ee.has(ke)&&(te[de]=!0);var we=le.get(ke);we.forEach(function(_e){xe.has(_e)||(Z.push(_e),xe.add(_e),J[de].push(_e))})}de++}}),{components:J,isFixed:te}},"constructComponents"),H=Q(V,C.fixedNodesOnHorizontal);this.componentsOnHorizontal=H.components,this.fixedComponentsOnHorizontal=H.isFixed;var ie=Q(X,C.fixedNodesOnVertical);this.componentsOnVertical=ie.components,this.fixedComponentsOnVertical=ie.isFixed}}},I.prototype.updateDisplacements=function(){var C=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(ie){var Y=C.idToNodeMap.get(ie.nodeId);Y.displacementX=0,Y.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var _=this.constraints.alignmentConstraint.vertical,D=0;D<_.length;D++){for(var M=0,R=0;R<_[D].length;R++){if(this.fixedNodeSet.has(_[D][R])){M=0;break}M+=this.idToNodeMap.get(_[D][R]).displacementX}for(var P=M/_[D].length,R=0;R<_[D].length;R++)this.idToNodeMap.get(_[D][R]).displacementX=P}if(this.constraints.alignmentConstraint.horizontal)for(var B=this.constraints.alignmentConstraint.horizontal,D=0;D1){var F;for(F=0;FM&&(M=Math.floor(B.y)),P=Math.floor(B.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-B.x/2,v.WORLD_CENTER_Y-B.y/2))},I.radialLayout=function(C,_,D){var M=Math.max(this.maxDiagonalInTree(C),m.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(_,null,0,359,0,M);var R=S.calculateBounds(C),P=new A;P.setDeviceOrgX(R.getMinX()),P.setDeviceOrgY(R.getMinY()),P.setWorldOrgX(D.x),P.setWorldOrgY(D.y);for(var B=0;B1;){var J=ee[0];ee.splice(0,1);var te=Q.indexOf(J);te>=0&&Q.splice(te,1),Y--,H--}_!=null?le=(Q.indexOf(ee[0])+1)%Y:le=0;for(var Z=Math.abs(M-D)/H,xe=le;ie!=H;xe=++xe%Y){var de=Q[xe].getOtherEnd(C);if(de!=_){var Se=(D+ie*Z)%360,Me=(Se+Z)%360;I.branchRadialLayout(de,C,Se,Me,R+P,P),ie++}}},I.maxDiagonalInTree=function(C){for(var _=w.MIN_VALUE,D=0;D_&&(_=R)}return _},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var C=this,_={};this.memberGroups={},this.idToDummyNode={};for(var D=[],M=this.graphManager.getAllNodes(),R=0;R"u"&&(_[F]=[]),_[F]=_[F].concat(P)}Object.keys(_).forEach(function(G){if(_[G].length>1){var $="DummyCompound_"+G;C.memberGroups[$]=_[G];var V=_[G][0].getParent(),X=new d(C.graphManager);X.id=$,X.paddingLeft=V.paddingLeft||0,X.paddingRight=V.paddingRight||0,X.paddingBottom=V.paddingBottom||0,X.paddingTop=V.paddingTop||0,C.idToDummyNode[$]=X;var Q=C.getGraphManager().add(C.newGraph(),X),H=V.getChild();H.add(X);for(var ie=0;ie<_[G].length;ie++){var Y=_[G][ie];H.remove(Y),Q.add(Y)}}})},I.prototype.clearCompounds=function(){var C={},_={};this.performDFSOnCompounds();for(var D=0;DR?(M.rect.x-=(M.labelWidth-R)/2,M.setWidth(M.labelWidth),M.labelMarginLeft=(M.labelWidth-R)/2):M.labelPosHorizontal=="right"&&M.setWidth(R+M.labelWidth)),M.labelHeight&&(M.labelPosVertical=="top"?(M.rect.y-=M.labelHeight,M.setHeight(P+M.labelHeight),M.labelMarginTop=M.labelHeight):M.labelPosVertical=="center"&&M.labelHeight>P?(M.rect.y-=(M.labelHeight-P)/2,M.setHeight(M.labelHeight),M.labelMarginTop=(M.labelHeight-P)/2):M.labelPosVertical=="bottom"&&M.setHeight(P+M.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var C=this.compoundOrder.length-1;C>=0;C--){var _=this.compoundOrder[C],D=_.id,M=_.paddingLeft,R=_.paddingTop,P=_.labelMarginLeft,B=_.labelMarginTop;this.adjustLocations(this.tiledMemberPack[D],_.rect.x,_.rect.y,M,R,P,B)}},I.prototype.repopulateZeroDegreeMembers=function(){var C=this,_=this.tiledZeroDegreePack;Object.keys(_).forEach(function(D){var M=C.idToDummyNode[D],R=M.paddingLeft,P=M.paddingTop,B=M.labelMarginLeft,F=M.labelMarginTop;C.adjustLocations(_[D],M.rect.x,M.rect.y,R,P,B,F)})},I.prototype.getToBeTiled=function(C){var _=C.id;if(this.toBeTiled[_]!=null)return this.toBeTiled[_];var D=C.getChild();if(D==null)return this.toBeTiled[_]=!1,!1;for(var M=D.getNodes(),R=0;R0)return this.toBeTiled[_]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[_]=!1,!1}return this.toBeTiled[_]=!0,!0},I.prototype.getNodeDegree=function(C){for(var _=C.id,D=C.getEdges(),M=0,R=0;RV&&(V=Q.rect.height)}D+=V+C.verticalPadding}},I.prototype.tileCompoundMembers=function(C,_){var D=this;this.tiledMemberPack=[],Object.keys(C).forEach(function(M){var R=_[M];if(D.tiledMemberPack[M]=D.tileNodes(C[M],R.paddingLeft+R.paddingRight),R.rect.width=D.tiledMemberPack[M].width,R.rect.height=D.tiledMemberPack[M].height,R.setCenter(D.tiledMemberPack[M].centerX,D.tiledMemberPack[M].centerY),R.labelMarginLeft=0,R.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=R.rect.width,B=R.rect.height;R.labelWidth&&(R.labelPosHorizontal=="left"?(R.rect.x-=R.labelWidth,R.setWidth(P+R.labelWidth),R.labelMarginLeft=R.labelWidth):R.labelPosHorizontal=="center"&&R.labelWidth>P?(R.rect.x-=(R.labelWidth-P)/2,R.setWidth(R.labelWidth),R.labelMarginLeft=(R.labelWidth-P)/2):R.labelPosHorizontal=="right"&&R.setWidth(P+R.labelWidth)),R.labelHeight&&(R.labelPosVertical=="top"?(R.rect.y-=R.labelHeight,R.setHeight(B+R.labelHeight),R.labelMarginTop=R.labelHeight):R.labelPosVertical=="center"&&R.labelHeight>B?(R.rect.y-=(R.labelHeight-B)/2,R.setHeight(R.labelHeight),R.labelMarginTop=(R.labelHeight-B)/2):R.labelPosVertical=="bottom"&&R.setHeight(B+R.labelHeight))}})},I.prototype.tileNodes=function(C,_){var D=this.tileNodesByFavoringDim(C,_,!0),M=this.tileNodesByFavoringDim(C,_,!1),R=this.getOrgRatio(D),P=this.getOrgRatio(M),B;return PF&&(F=ie.getWidth())});var G=P/R,$=B/R,V=Math.pow(D-M,2)+4*(G+M)*($+D)*R,X=(M-D+Math.sqrt(V))/(2*(G+M)),Q;_?(Q=Math.ceil(X),Q==X&&Q++):Q=Math.floor(X);var H=Q*(G+M)-M;return F>H&&(H=F),H+=M*2,H},I.prototype.tileNodesByFavoringDim=function(C,_,D){var M=m.TILING_PADDING_VERTICAL,R=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,B={rows:[],rowWidth:[],rowHeight:[],width:0,height:_,verticalPadding:M,horizontalPadding:R,centerX:0,centerY:0};P&&(B.idealRowWidth=this.calcIdealRowWidth(C,D));var F=o(function(Y){return Y.rect.width*Y.rect.height},"getNodeArea"),G=o(function(Y,le){return F(le)-F(Y)},"areaCompareFcn");C.sort(function(ie,Y){var le=G;return B.idealRowWidth?(le=P,le(ie.id,Y.id)):le(ie,Y)});for(var $=0,V=0,X=0;X0&&(B+=C.horizontalPadding),C.rowWidth[D]=B,C.width0&&(F+=C.verticalPadding);var G=0;F>C.rowHeight[D]&&(G=C.rowHeight[D],C.rowHeight[D]=F,G=C.rowHeight[D]-G),C.height+=G,C.rows[D].push(_)},I.prototype.getShortestRowIndex=function(C){for(var _=-1,D=Number.MAX_VALUE,M=0;MD&&(_=M,D=C.rowWidth[M]);return _},I.prototype.canAddHorizontal=function(C,_,D){if(C.idealRowWidth){var M=C.rows.length-1,R=C.rowWidth[M];return R+_+C.horizontalPadding<=C.idealRowWidth}var P=this.getShortestRowIndex(C);if(P<0)return!0;var B=C.rowWidth[P];if(B+C.horizontalPadding+_<=C.width)return!0;var F=0;C.rowHeight[P]0&&(F=D+C.verticalPadding-C.rowHeight[P]);var G;C.width-B>=_+C.horizontalPadding?G=(C.height+F)/(B+_+C.horizontalPadding):G=(C.height+F)/C.width,F=D+C.verticalPadding;var $;return C.width<_?$=(C.height+F)/_:$=(C.height+F)/C.width,$<1&&($=1/$),G<1&&(G=1/G),G<$},I.prototype.shiftToLastRow=function(C){var _=this.getLongestRowIndex(C),D=C.rowWidth.length-1,M=C.rows[_],R=M[M.length-1],P=R.width+C.horizontalPadding;if(C.width-C.rowWidth[D]>P&&_!=D){M.splice(-1,1),C.rows[D].push(R),C.rowWidth[_]=C.rowWidth[_]-P,C.rowWidth[D]=C.rowWidth[D]+P,C.width=C.rowWidth[instance.getLongestRowIndex(C)];for(var B=Number.MIN_VALUE,F=0;FB&&(B=M[F].height);_>0&&(B+=C.verticalPadding);var G=C.rowHeight[_]+C.rowHeight[D];C.rowHeight[_]=B,C.rowHeight[D]0)for(var H=R;H<=P;H++)Q[0]+=this.grid[H][B-1].length+this.grid[H][B].length-1;if(P0)for(var H=B;H<=F;H++)Q[3]+=this.grid[R-1][H].length+this.grid[R][H].length-1;for(var ie=w.MAX_VALUE,Y,le,ee=0;ee{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var et=0;oe.forEach(function(ot){ce=="horizontal"?(me.set(ot,x.has(ot)?b[x.get(ot)]:ne.get(ot)),et+=me.get(ot)):(me.set(ot,x.has(ot)?T[x.get(ot)]:ne.get(ot)),et+=me.get(ot))}),et=et/oe.length,Xe.forEach(function(ot){z.has(ot)||me.set(ot,et)})}else{var he=0;Xe.forEach(function(ot){ce=="horizontal"?he+=x.has(ot)?b[x.get(ot)]:ne.get(ot):he+=x.has(ot)?T[x.get(ot)]:ne.get(ot)}),he=he/Xe.length,Xe.forEach(function(ot){me.set(ot,he)})}});for(var Ie=o(function(){var oe=ge.shift(),et=U.get(oe);et.forEach(function(he){if(me.get(he.id)ot&&(ot=yt),dtDt&&(Dt=dt)}}catch(_n){wt=!0,Rt=_n}finally{try{!It&&it.return&&it.return()}finally{if(wt)throw Rt}}var Ht=(et+ot)/2-(he+Dt)/2,cr=!0,Kt=!1,kr=void 0;try{for(var ur=Xe[Symbol.iterator](),tr;!(cr=(tr=ur.next()).done);cr=!0){var hr=tr.value;me.set(hr,me.get(hr)+Ht)}}catch(_n){Kt=!0,kr=_n}finally{try{!cr&&ur.return&&ur.return()}finally{if(Kt)throw kr}}})}return me},"findAppropriatePositionForRelativePlacement"),N=o(function(U){var ce=0,z=0,ne=0,se=0;if(U.forEach(function(Re){Re.left?b[x.get(Re.left)]-b[x.get(Re.right)]>=0?ce++:z++:T[x.get(Re.top)]-T[x.get(Re.bottom)]>=0?ne++:se++}),ce>z&&ne>se)for(var be=0;bez)for(var pe=0;pese)for(var me=0;me1)y.fixedNodeConstraint.forEach(function(ae,U){M[U]=[ae.position.x,ae.position.y],R[U]=[b[x.get(ae.nodeId)],T[x.get(ae.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var ae=0;if(y.alignmentConstraint.vertical){for(var U=y.alignmentConstraint.vertical,ce=o(function(me){var Re=new Set;U[me].forEach(function(qe){Re.add(qe)});var ge=new Set([].concat(u(Re)).filter(function(qe){return F.has(qe)})),Ie=void 0;ge.size>0?Ie=b[x.get(ge.values().next().value)]:Ie=L(Re).x,U[me].forEach(function(qe){M[ae]=[Ie,T[x.get(qe)]],R[ae]=[b[x.get(qe)],T[x.get(qe)]],ae++})},"_loop2"),z=0;z0?Ie=b[x.get(ge.values().next().value)]:Ie=L(Re).y,ne[me].forEach(function(qe){M[ae]=[b[x.get(qe)],Ie],R[ae]=[b[x.get(qe)],T[x.get(qe)]],ae++})},"_loop3"),be=0;beX&&(X=V[H].length,Q=H);if(X<$.size/2)N(y.relativePlacementConstraint),P=!1,B=!1;else{var ie=new Map,Y=new Map,le=[];V[Q].forEach(function(ae){G.get(ae).forEach(function(U){U.direction=="horizontal"?(ie.has(ae)?ie.get(ae).push(U):ie.set(ae,[U]),ie.has(U.id)||ie.set(U.id,[]),le.push({left:ae,right:U.id})):(Y.has(ae)?Y.get(ae).push(U):Y.set(ae,[U]),Y.has(U.id)||Y.set(U.id,[]),le.push({top:ae,bottom:U.id}))})}),N(le),B=!1;var ee=I(ie,"horizontal"),J=I(Y,"vertical");V[Q].forEach(function(ae,U){R[U]=[b[x.get(ae)],T[x.get(ae)]],M[U]=[],ee.has(ae)?M[U][0]=ee.get(ae):M[U][0]=b[x.get(ae)],J.has(ae)?M[U][1]=J.get(ae):M[U][1]=T[x.get(ae)]}),P=!0}}if(P){for(var te=void 0,Z=d.transpose(M),xe=d.transpose(R),de=0;de0){var fe={x:0,y:0};y.fixedNodeConstraint.forEach(function(ae,U){var ce={x:b[x.get(ae.nodeId)],y:T[x.get(ae.nodeId)]},z=ae.position,ne=A(z,ce);fe.x+=ne.x,fe.y+=ne.y}),fe.x/=y.fixedNodeConstraint.length,fe.y/=y.fixedNodeConstraint.length,b.forEach(function(ae,U){b[U]+=fe.x}),T.forEach(function(ae,U){T[U]+=fe.y}),y.fixedNodeConstraint.forEach(function(ae){b[x.get(ae.nodeId)]=ae.position.x,T[x.get(ae.nodeId)]=ae.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Ke=y.alignmentConstraint.vertical,Te=o(function(U){var ce=new Set;Ke[U].forEach(function(se){ce.add(se)});var z=new Set([].concat(u(ce)).filter(function(se){return F.has(se)})),ne=void 0;z.size>0?ne=b[x.get(z.values().next().value)]:ne=L(ce).x,ce.forEach(function(se){F.has(se)||(b[x.get(se)]=ne)})},"_loop4"),Be=0;Be0?ne=T[x.get(z.values().next().value)]:ne=L(ce).y,ce.forEach(function(se){F.has(se)||(T[x.get(se)]=ne)})},"_loop5"),Ne=0;Ne{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var RCe=nr((L3,PW)=>{"use strict";o((function(e,r){typeof L3=="object"&&typeof PW=="object"?PW.exports=r(OW()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof L3=="object"?L3.cytoscapeFcose=r(OW()):e.cytoscapeFcose=r(e.coseBase)}),"webpackUniversalModuleDefinition")(L3,function(t){return(()=>{"use strict";var e={658:(a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=(function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),T;!(y=(T=b.next()).done)&&(g.push(T.value),!(m&&g.length===m));y=!0);}catch(E){v=!0,x=E}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge($)});for(var B=0;B1){T=x[0],E=T.connectedEdges().length,x.forEach(function(R){R.connectedEdges().length0&&g.set("dummy"+(g.size+1),S),A},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,T=!1,E=void 0;try{for(var w=p.nodeIndexes[Symbol.iterator](),k;!(b=(k=w.next()).done);b=!0){var S=k.value,A=u(S,2),L=A[0],I=A[1],N=m.cy.getElementById(L);if(N){var C=N.boundingBox(),_=p.xCoords[I]-C.w/2,D=p.xCoords[I]+C.w/2,M=p.yCoords[I]-C.h/2,R=p.yCoords[I]+C.h/2;_y&&(y=D),Mx&&(x=R)}}}catch($){T=!0,E=$}finally{try{!b&&w.return&&w.return()}finally{if(T)throw E}}var P=d.x-(y+g)/2,B=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function($){return $+P}),p.yCoords=p.yCoords.map(function($){return $+B})}else{Object.keys(p).forEach(function($){var V=p[$],X=V.getRect().x,Q=V.getRect().x+V.getRect().width,H=V.getRect().y,ie=V.getRect().y+V.getRect().height;Xy&&(y=Q),Hx&&(x=ie)});var F=d.x-(y+g)/2,G=d.y-(x+v)/2;Object.keys(p).forEach(function($){var V=p[$];V.setCenter(V.getCenterX()+F,V.getCenterY()+G)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,T=void 0,E=void 0,w=void 0,k=void 0,S=d.descendants().not(":parent"),A=S.length,L=0;LT&&(y=T),vw&&(x=w),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,T){var E=b.cy,w=b.eles,k=w.nodes(),S=w.edges(),A=void 0,L=void 0,I=void 0,N={};b.randomize&&(A=T.nodeIndexes,L=T.xCoords,I=T.yCoords);var C=o(function($){return typeof $=="function"},"isFn"),_=o(function($,V){return C($)?$(V):$},"optFn"),D=u.calcParentsWithoutChildren(E,w),M=o(function G($,V,X,Q){for(var H=V.length,ie=0;ie0){var Z=void 0;Z=X.getGraphManager().add(X.newGraph(),ee),G(Z,le,X,Q)}}},"processChildrenList"),R=o(function($,V,X){for(var Q=0,H=0,ie=0;ie0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=Q/H:C(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function($,V){V.fixedNodeConstraint&&($.constraints.fixedNodeConstraint=V.fixedNodeConstraint),V.alignmentConstraint&&($.constraints.alignmentConstraint=V.alignmentConstraint),V.relativePlacementConstraint&&($.constraints.relativePlacementConstraint=V.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var B=new h,F=B.newGraphManager();return M(F.addRoot(),u.getTopMostNodes(k),B,b),R(B,F,S),P(B,b),B.runLayout(),N},"coseLayout");a.exports={coseLayout:v}}),212:((a,s,l)=>{var u=(function(){function b(T,E){for(var w=0;w0)if(R){var F=d.getTopMostNodes(w.eles.nodes());if(C=d.connectComponents(k,w.eles,F),C.forEach(function(ke){var we=ke.boundingBox();_.push({x:we.x1+we.w/2,y:we.y1+we.h/2})}),w.randomize&&C.forEach(function(ke){w.eles=ke,A.push(m(w))}),w.quality=="default"||w.quality=="proof"){var G=k.collection();if(w.tile){var $=new Map,V=[],X=[],Q=0,H={nodeIndexes:$,xCoords:V,yCoords:X},ie=[];if(C.forEach(function(ke,we){ke.edges().length==0&&(ke.nodes().forEach(function(_e,$e){G.merge(ke.nodes()[$e]),_e.isParent()||(H.nodeIndexes.set(ke.nodes()[$e].id(),Q++),H.xCoords.push(ke.nodes()[0].position().x),H.yCoords.push(ke.nodes()[0].position().y))}),ie.push(we))}),G.length>1){var Y=G.boundingBox();_.push({x:Y.x1+Y.w/2,y:Y.y1+Y.h/2}),C.push(G),A.push(H);for(var le=ie.length-1;le>=0;le--)C.splice(ie[le],1),A.splice(ie[le],1),_.splice(ie[le],1)}}C.forEach(function(ke,we){w.eles=ke,N.push(y(w,A[we])),d.relocateComponent(_[we],N[we],w)})}else C.forEach(function(ke,we){d.relocateComponent(_[we],A[we],w)});var ee=new Set;if(C.length>1){var J=[],te=S.filter(function(ke){return ke.css("display")=="none"});C.forEach(function(ke,we){var _e=void 0;if(w.quality=="draft"&&(_e=A[we].nodeIndexes),ke.nodes().not(te).length>0){var $e={};$e.edges=[],$e.nodes=[];var fe=void 0;ke.nodes().not(te).forEach(function(Ke){if(w.quality=="draft")if(!Ke.isParent())fe=_e.get(Ke.id()),$e.nodes.push({x:A[we].xCoords[fe]-Ke.boundingbox().w/2,y:A[we].yCoords[fe]-Ke.boundingbox().h/2,width:Ke.boundingbox().w,height:Ke.boundingbox().h});else{var Te=d.calcBoundingBox(Ke,A[we].xCoords,A[we].yCoords,_e);$e.nodes.push({x:Te.topLeftX,y:Te.topLeftY,width:Te.width,height:Te.height})}else N[we][Ke.id()]&&$e.nodes.push({x:N[we][Ke.id()].getLeft(),y:N[we][Ke.id()].getTop(),width:N[we][Ke.id()].getWidth(),height:N[we][Ke.id()].getHeight()})}),ke.edges().forEach(function(Ke){var Te=Ke.source(),Be=Ke.target();if(Te.css("display")!="none"&&Be.css("display")!="none")if(w.quality=="draft"){var Ue=_e.get(Te.id()),Ge=_e.get(Be.id()),Ne=[],We=[];if(Te.isParent()){var j=d.calcBoundingBox(Te,A[we].xCoords,A[we].yCoords,_e);Ne.push(j.topLeftX+j.width/2),Ne.push(j.topLeftY+j.height/2)}else Ne.push(A[we].xCoords[Ue]),Ne.push(A[we].yCoords[Ue]);if(Be.isParent()){var ae=d.calcBoundingBox(Be,A[we].xCoords,A[we].yCoords,_e);We.push(ae.topLeftX+ae.width/2),We.push(ae.topLeftY+ae.height/2)}else We.push(A[we].xCoords[Ge]),We.push(A[we].yCoords[Ge]);$e.edges.push({startX:Ne[0],startY:Ne[1],endX:We[0],endY:We[1]})}else N[we][Te.id()]&&N[we][Be.id()]&&$e.edges.push({startX:N[we][Te.id()].getCenterX(),startY:N[we][Te.id()].getCenterY(),endX:N[we][Be.id()].getCenterX(),endY:N[we][Be.id()].getCenterY()})}),$e.nodes.length>0&&(J.push($e),ee.add(we))}});var Z=M.packComponents(J,w.randomize).shifts;if(w.quality=="draft")A.forEach(function(ke,we){var _e=ke.xCoords.map(function(fe){return fe+Z[we].dx}),$e=ke.yCoords.map(function(fe){return fe+Z[we].dy});ke.xCoords=_e,ke.yCoords=$e});else{var xe=0;ee.forEach(function(ke){Object.keys(N[ke]).forEach(function(we){var _e=N[ke][we];_e.setCenter(_e.getCenterX()+Z[xe].dx,_e.getCenterY()+Z[xe].dy)}),xe++})}}}else{var P=w.eles.boundingBox();if(_.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),w.randomize){var B=m(w);A.push(B)}w.quality=="default"||w.quality=="proof"?(N.push(y(w,A[0])),d.relocateComponent(_[0],N[0],w)):d.relocateComponent(_[0],A[0],w)}var de=o(function(we,_e){if(w.quality=="default"||w.quality=="proof"){typeof we=="number"&&(we=_e);var $e=void 0,fe=void 0,Ke=we.data("id");return N.forEach(function(Be){Ke in Be&&($e={x:Be[Ke].getRect().getCenterX(),y:Be[Ke].getRect().getCenterY()},fe=Be[Ke])}),w.nodeDimensionsIncludeLabels&&(fe.labelWidth&&(fe.labelPosHorizontal=="left"?$e.x+=fe.labelWidth/2:fe.labelPosHorizontal=="right"&&($e.x-=fe.labelWidth/2)),fe.labelHeight&&(fe.labelPosVertical=="top"?$e.y+=fe.labelHeight/2:fe.labelPosVertical=="bottom"&&($e.y-=fe.labelHeight/2))),$e==null&&($e={x:we.position("x"),y:we.position("y")}),{x:$e.x,y:$e.y}}else{var Te=void 0;return A.forEach(function(Be){var Ue=Be.nodeIndexes.get(we.id());Ue!=null&&(Te={x:Be.xCoords[Ue],y:Be.yCoords[Ue]})}),Te==null&&(Te={x:we.position("x"),y:we.position("y")}),{x:Te.x,y:Te.y}}},"getPositions");if(w.quality=="default"||w.quality=="proof"||w.randomize){var Se=d.calcParentsWithoutChildren(k,S),Me=S.filter(function(ke){return ke.css("display")=="none"});w.eles=S.not(Me),S.nodes().not(":parent").not(Me).layoutPositions(E,w,de),Se.length>0&&Se.forEach(function(ke){ke.position(de(ke))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b})();a.exports=x}),657:((a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,T=new Map,E=new Map,w=[],k=[],S=[],A=[],L=[],I=[],N=[],C=[],_=void 0,D=void 0,M=1e8,R=1e-9,P=m.piTol,B=m.samplingType,F=m.nodeSeparation,G=void 0,$=o(function(){for(var ce=0,z=0,ne=!1;z=be;){me=se[be++];for(var Xe=w[me],oe=0;oeIe&&(Ie=L[he],qe=he)}return qe},"BFS"),X=o(function(ce){var z=void 0;if(ce){z=Math.floor(Math.random()*D),_=z;for(var se=0;se=1)break;Ie=ge}for(var Xe=0;Xe=1)break;Ie=ge}for(var et=0;et0&&(z.isParent()?w[ce].push(E.get(z.id())):w[ce].push(z.id()))})});var Se=o(function(ce){var z=T.get(ce),ne=void 0;b.get(ce).forEach(function(se){g.getElementById(se).isParent()?ne=E.get(se):ne=se,w[z].push(ne),w[T.get(ne)].push(ce)})},"_loop"),Me=!0,ke=!1,we=void 0;try{for(var _e=b.keys()[Symbol.iterator](),$e;!(Me=($e=_e.next()).done);Me=!0){var fe=$e.value;Se(fe)}}catch(U){ke=!0,we=U}finally{try{!Me&&_e.return&&_e.return()}finally{if(ke)throw we}}D=T.size;var Ke=void 0;if(D>2){G=D{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h}),140:(a=>{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var Qv,rg,BW=O(()=>{"use strict";Xc();Qv=o(t=>`${t}`,"wrapIcon"),rg={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:Qv('')},server:{body:Qv('')},disk:{body:Qv('')},internet:{body:Qv('')},cloud:{body:Qv('')},unknown:yD,blank:{body:Qv("")}}}});var LCe,NCe,MCe,ICe,OCe=O(()=>{"use strict";jt();co();Xc();Ur();BW();k_();ar();LCe=o(async function(t,e,r){let n=r.getConfigField("padding"),i=r.getConfigField("iconSize"),a=i/2,s=i/6,l=s/2;await Promise.all(e.edges().map(async u=>{let{source:h,sourceDir:f,sourceArrow:d,sourceGroup:p,target:m,targetDir:g,targetArrow:y,targetGroup:v,label:x}=w_(u),{x:b,y:T}=u[0].sourceEndpoint(),{x:E,y:w}=u[0].midpoint(),{x:k,y:S}=u[0].targetEndpoint(),A=n+4;if(p&&(vs(f)?b+=f==="L"?-A:A:T+=f==="T"?-A:A+18),v&&(vs(g)?k+=g==="L"?-A:A:S+=g==="T"?-A:A+18),!p&&r.getNode(h)?.type==="junction"&&(vs(f)?b+=f==="L"?a:-a:T+=f==="T"?a:-a),!v&&r.getNode(m)?.type==="junction"&&(vs(g)?k+=g==="L"?a:-a:S+=g==="T"?a:-a),u[0]._private.rscratch){let L=t.insert("g");if(L.insert("path").attr("d",`M ${b},${T} L ${E},${w} L${k},${S} `).attr("class","edge").attr("id",hu(h,m,{prefix:"L"})),d){let I=vs(f)?C3[f](b,s):b-l,N=Zu(f)?C3[f](T,s):T-l;L.insert("polygon").attr("points",_W[f](s)).attr("transform",`translate(${I},${N})`).attr("class","arrow")}if(y){let I=vs(g)?C3[g](k,s):k-l,N=Zu(g)?C3[g](S,s):S-l;L.insert("polygon").attr("points",_W[g](s)).attr("transform",`translate(${I},${N})`).attr("class","arrow")}if(x){let I=A3(f,g)?"XY":vs(f)?"X":"Y",N=0;I==="X"?N=Math.abs(b-k):I==="Y"?N=Math.abs(T-S)/1.5:N=Math.abs(b-k)/2;let C=L.append("g");if(await Fn(C,x,{useHtmlLabels:!1,width:N,classes:"architecture-service-label"},ve()),C.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),I==="X")C.attr("transform","translate("+E+", "+w+")");else if(I==="Y")C.attr("transform","translate("+E+", "+w+") rotate(-90)");else if(I==="XY"){let _=_3(f,g);if(_&&TCe(_)){let D=C.node().getBoundingClientRect(),[M,R]=kCe(_);C.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*M*R*45})`);let P=C.node().getBoundingClientRect();C.attr("transform",` + translate(${E}, ${w-D.height/2}) + translate(${M*P.width/2}, ${R*P.height/2}) + rotate(${-1*M*R*45}, 0, ${D.height/2}) + `)}}}}}))},"drawEdges"),NCe=o(async function(t,e,r){let i=r.getConfigField("padding")*.75,a=r.getConfigField("fontSize"),l=r.getConfigField("iconSize")/2;await Promise.all(e.nodes().map(async u=>{let h=Tp(u);if(h.type==="group"){let{h:f,w:d,x1:p,y1:m}=u.boundingBox(),g=t.append("rect");g.attr("id",`group-${h.id}`).attr("x",p+l).attr("y",m+l).attr("width",d).attr("height",f).attr("class","node-bkg");let y=t.append("g"),v=p,x=m;if(h.icon){let b=y.append("g");b.html(`${await eo(h.icon,{height:i,width:i,fallbackPrefix:rg.prefix})}`),b.attr("transform","translate("+(v+l+1)+", "+(x+l+1)+")"),v+=i,x+=a/2-1-2}if(h.label){let b=y.append("g");await Fn(b,h.label,{useHtmlLabels:!1,width:d,classes:"architecture-service-label"},ve()),b.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),b.attr("transform","translate("+(v+l+4)+", "+(x+l+2)+")")}r.setElementForId(h.id,g)}}))},"drawGroups"),MCe=o(async function(t,e,r){let n=ve();for(let i of r){let a=e.append("g"),s=t.getConfigField("iconSize");if(i.title){let f=a.append("g");await Fn(f,i.title,{useHtmlLabels:!1,width:s*1.5,classes:"architecture-service-label"},n),f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),f.attr("transform","translate("+s/2+", "+s+")")}let l=a.append("g");if(i.icon)l.html(`${await eo(i.icon,{height:s,width:s,fallbackPrefix:rg.prefix})}`);else if(i.iconText){l.html(`${await eo("blank",{height:s,width:s,fallbackPrefix:rg.prefix})}`);let p=l.append("g").append("foreignObject").attr("width",s).attr("height",s).append("div").attr("class","node-icon-text").attr("style",`height: ${s}px;`).append("div").html(wr(i.iconText,n)),m=parseInt(window.getComputedStyle(p.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;p.attr("style",`-webkit-line-clamp: ${Math.floor((s-2)/m)};`)}else l.append("path").attr("class","node-bkg").attr("id","node-"+i.id).attr("d",`M0,${s} V5 Q0,0 5,0 H${s-5} Q${s},0 ${s},5 V${s} Z`);a.attr("id",`service-${i.id}`).attr("class","architecture-service");let{width:u,height:h}=a.node().getBBox();i.width=u,i.height=h,t.setElementForId(i.id,a)}return 0},"drawServices"),ICe=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=t.getConfigField("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function Tpt(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"service",id:n.id,icon:n.icon,label:n.title,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-service"})})}function wpt(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"junction",id:n.id,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-junction"})})}function kpt(t,e){e.nodes().map(r=>{let n=Tp(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function Ept(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function Spt(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=A3(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function Cpt(t,e,r){let n=o((l,u)=>Object.entries(l).reduce((h,[f,d])=>{let p=0,m=Object.entries(d);if(m.length===1)return h[f]=m[0][1],h;for(let g=0;g{let u={},h={};return Object.entries(l).forEach(([f,[d,p]])=>{let m=t.getNode(f)?.in??"default";u[p]??={},u[p][m]??=[],u[p][m].push(f),h[d]??={},h[d][m]??=[],h[d][m].push(f)}),{horiz:Object.values(n(u,"horizontal")).filter(f=>f.length>1),vert:Object.values(n(h,"vertical")).filter(f=>f.length>1)}}),[a,s]=i.reduce(([l,u],{horiz:h,vert:f})=>[[...l,...h],[...u,...f]],[[],[]]);return{horizontal:a,vertical:s}}function Apt(t,e){let r=[],n=o(a=>`${a[0]},${a[1]}`,"posToStr"),i=o(a=>a.split(",").map(s=>parseInt(s)),"strToPos");return t.forEach(a=>{let s=Object.fromEntries(Object.entries(a).map(([f,d])=>[n(d),f])),l=[n([0,0])],u={},h={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;l.length>0;){let f=l.shift();if(f){u[f]=1;let d=s[f];if(d){let p=i(f);Object.entries(h).forEach(([m,g])=>{let y=n([p[0]+g[0],p[1]+g[1]]),v=s[y];v&&!u[y]&&(l.push(y),r.push({[AW[m]]:v,[AW[bCe(m)]]:d,gap:1.5*e.getConfigField("iconSize")}))})}}}}),r}function _pt(t,e,r,n,i,{spatialMaps:a,groupAlignments:s}){return new Promise(l=>{let u=je("body").append("div").attr("id","cy").attr("style","display:none"),h=Il({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${i.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${i.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});u.remove(),Ept(r,h),Tpt(t,h,i),wpt(e,h,i),Spt(n,h);let f=Cpt(i,a,s),d=Apt(a,i),p=h.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(m){let[g,y]=m.connectedNodes(),{parent:v}=Tp(g),{parent:x}=Tp(y);return v===x?1.5*i.getConfigField("iconSize"):.5*i.getConfigField("iconSize")},edgeElasticity(m){let[g,y]=m.connectedNodes(),{parent:v}=Tp(g),{parent:x}=Tp(y);return v===x?.45:.001},alignmentConstraint:f,relativePlacementConstraint:d});p.one("layoutstop",()=>{function m(g,y,v,x){let b,T,{x:E,y:w}=g,{x:k,y:S}=y;T=(x-w+(E-v)*(w-S)/(E-k))/Math.sqrt(1+Math.pow((w-S)/(E-k),2)),b=Math.sqrt(Math.pow(x-w,2)+Math.pow(v-E,2)-Math.pow(T,2));let A=Math.sqrt(Math.pow(k-E,2)+Math.pow(S-w,2));b=b/A;let L=(k-E)*(x-w)-(S-w)*(v-E);switch(!0){case L>=0:L=1;break;case L<0:L=-1;break}let I=(k-E)*(v-E)+(S-w)*(x-w);switch(!0){case I>=0:I=1;break;case I<0:I=-1;break}return T=Math.abs(T)*L,b=b*I,{distances:T,weights:b}}o(m,"getSegmentWeights"),h.startBatch();for(let g of Object.values(h.edges()))if(g.data?.()){let{x:y,y:v}=g.source().position(),{x,y:b}=g.target().position();if(y!==x&&v!==b){let T=g.sourceEndpoint(),E=g.targetEndpoint(),{sourceDir:w}=w_(g),[k,S]=Zu(w)?[T.x,E.y]:[E.x,T.y],{weights:A,distances:L}=m(T,E,k,S);g.style("segment-distances",L),g.style("segment-weights",A)}}h.endBatch(),p.run()}),p.run(),h.ready(m=>{K.info("Ready",m),l(h)})})}var PCe,Dpt,BCe,FCe=O(()=>{"use strict";SB();PCe=Ra(RCe(),1);Ar();xt();Xc();Ul();Ti();BW();k_();OCe();Nw([{name:rg.prefix,icons:rg}]);Il.use(PCe.default);o(Tpt,"addServices");o(wpt,"addJunctions");o(kpt,"positionNodes");o(Ept,"addGroups");o(Spt,"addEdges");o(Cpt,"getAlignments");o(Apt,"getRelativeConstraints");o(_pt,"layoutArchitecture");Dpt=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=Ii(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await MCe(i,p,a),ICe(i,p,s);let g=await _pt(a,s,l,u,i,h);await LCe(d,g,i),await NCe(m,g,i),kpt(i,g),Kc(void 0,f,i.getConfigField("padding"),i.getConfigField("useMaxWidth"))},"draw"),BCe={draw:Dpt}});var $Ce={};vr($Ce,{diagram:()=>Rpt});var Rpt,zCe=O(()=>{"use strict";ACe();RW();DCe();FCe();Rpt={parser:LW,get db(){return new Kv},renderer:BCe,styles:_Ce}});var FW,qCe,UCe=O(()=>{"use strict";FW=(function(){var t=o(function(x,b,T,E){for(T=T||{},E=x.length;E--;T[x[E]]=b);return T},"o"),e=[1,4],r=[1,14],n=[1,12],i=[1,13],a=[6,7,8],s=[1,20],l=[1,18],u=[1,19],h=[6,7,11],f=[1,6,13,14],d=[1,23],p=[1,24],m=[1,6,7,11,13,14],g={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(b,T,E,w,k,S,A){var L=S.length-1;switch(k){case 6:case 7:return w;case 15:w.addNode(S[L-1].length,S[L].trim());break;case 16:w.addNode(0,S[L].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:i},t(a,[2,3]),{1:[2,2]},t(a,[2,4]),t(a,[2,5]),{1:[2,6],6:r,12:15,13:n,14:i},{6:r,9:16,12:11,13:n,14:i},{6:s,7:l,10:17,11:u},t(h,[2,18],{14:[1,21]}),t(h,[2,16]),t(h,[2,17]),{6:s,7:l,10:22,11:u},{1:[2,7],6:r,12:15,13:n,14:i},t(f,[2,14],{7:d,11:p}),t(m,[2,8]),t(m,[2,9]),t(m,[2,10]),t(h,[2,15]),t(f,[2,13],{7:d,11:p}),t(m,[2,11]),t(m,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(b,T){if(T.recoverable)this.trace(b);else{var E=new Error(b);throw E.hash=T,E}},"parseError"),parse:o(function(b){var T=this,E=[0],w=[],k=[null],S=[],A=this.table,L="",I=0,N=0,C=0,_=2,D=1,M=S.slice.call(arguments,1),R=Object.create(this.lexer),P={yy:{}};for(var B in this.yy)Object.prototype.hasOwnProperty.call(this.yy,B)&&(P.yy[B]=this.yy[B]);R.setInput(b,P.yy),P.yy.lexer=R,P.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var F=R.yylloc;S.push(F);var G=R.options&&R.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $(Se){E.length=E.length-2*Se,k.length=k.length-Se,S.length=S.length-Se}o($,"popStack");function V(){var Se;return Se=w.pop()||R.lex()||D,typeof Se!="number"&&(Se instanceof Array&&(w=Se,Se=w.pop()),Se=T.symbols_[Se]||Se),Se}o(V,"lex");for(var X,Q,H,ie,Y,le,ee={},J,te,Z,xe;;){if(H=E[E.length-1],this.defaultActions[H]?ie=this.defaultActions[H]:((X===null||typeof X>"u")&&(X=V()),ie=A[H]&&A[H][X]),typeof ie>"u"||!ie.length||!ie[0]){var de="";xe=[];for(J in A[H])this.terminals_[J]&&J>_&&xe.push("'"+this.terminals_[J]+"'");R.showPosition?de="Parse error on line "+(I+1)+`: +`+R.showPosition()+` +Expecting `+xe.join(", ")+", got '"+(this.terminals_[X]||X)+"'":de="Parse error on line "+(I+1)+": Unexpected "+(X==D?"end of input":"'"+(this.terminals_[X]||X)+"'"),this.parseError(de,{text:R.match,token:this.terminals_[X]||X,line:R.yylineno,loc:F,expected:xe})}if(ie[0]instanceof Array&&ie.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+X);switch(ie[0]){case 1:E.push(X),k.push(R.yytext),S.push(R.yylloc),E.push(ie[1]),X=null,Q?(X=Q,Q=null):(N=R.yyleng,L=R.yytext,I=R.yylineno,F=R.yylloc,C>0&&C--);break;case 2:if(te=this.productions_[ie[1]][1],ee.$=k[k.length-te],ee._$={first_line:S[S.length-(te||1)].first_line,last_line:S[S.length-1].last_line,first_column:S[S.length-(te||1)].first_column,last_column:S[S.length-1].last_column},G&&(ee._$.range=[S[S.length-(te||1)].range[0],S[S.length-1].range[1]]),le=this.performAction.apply(ee,[L,N,I,P.yy,ie[1],k,S].concat(M)),typeof le<"u")return le;te&&(E=E.slice(0,-1*te*2),k=k.slice(0,-1*te),S=S.slice(0,-1*te)),E.push(this.productions_[ie[1]][0]),k.push(ee.$),S.push(ee._$),Z=A[E[E.length-2]][E[E.length-1]],E.push(Z);break;case 3:return!0}}return!0},"parse")},y=(function(){var x={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(b,T){return this.yy=T||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var T=b.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},"input"),unput:o(function(b){var T=b.length,E=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===w.length?this.yylloc.first_column:0)+w[w.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(b){this.unput(this.match.slice(b))},"less"),pastInput:o(function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var b=this.pastInput(),T=new Array(b.length+1).join("-");return b+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(b,T){var E,w,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),w=b[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var S in k)this[S]=k[S];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,T,E,w;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),S=0;ST[0].length)){if(T=E,w=S,this.options.backtrack_lexer){if(b=this.test_match(E,k[S]),b!==!1)return b;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(b=this.test_match(T,k[w]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(T,E,w,k){var S=k;switch(w){case 0:return 6;case 1:return 8;case 2:return 8;case 3:return 6;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return x})();g.lexer=y;function v(){this.yy={}}return o(v,"Parser"),v.prototype=g,g.Parser=v,new v})();FW.parser=FW;qCe=FW});var E_,WCe=O(()=>{"use strict";jt();Ur();si();E_=class{constructor(){this.stack=[];this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{o(this,"IshikawaDB")}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,_r()}getRoot(){return this.root}addNode(e,r){let n=st.sanitizeText(r,ve());if(!this.root){this.baseLevel=e,this.root={text:n,children:[]},this.stack=[{level:0,node:this.root}],zr(n);return}let i=e-(this.baseLevel??0);for(i<=0&&(i=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=i;)this.stack.pop();let a=this.stack[this.stack.length-1].node,s={text:n,children:[]};a.children.push(s),this.stack.push({level:i,node:s})}getAccTitle(){return Or()}setAccTitle(e){Lr(e)}getAccDescription(){return Br()}setAccDescription(e){Pr(e)}getDiagramTitle(){return Fr()}setDiagramTitle(e){zr(e)}}});var Ipt,Zv,Opt,Ppt,Bpt,QCe,HCe,YCe,jCe,Fpt,XCe,$pt,zpt,Gpt,$W,Vpt,qpt,ZCe,S_,KCe,Jv,JCe,e6e=O(()=>{"use strict";jt();Ul();Ti();ar();Wt();Ipt=14,Zv=250,Opt=30,Ppt=60,Bpt=5,QCe=82*Math.PI/180,HCe=Math.cos(QCe),YCe=Math.sin(QCe),jCe=o((t,e,r)=>{let n=t.node().getBBox(),i=n.width+e*2,a=n.height+e*2;Zr(t,a,i,r),t.attr("viewBox",`${n.x-e} ${n.y-e} ${i} ${a}`)},"applyPaddedViewBox"),Fpt=o((t,e,r,n)=>{let a=n.db.getRoot();if(!a)return;let s=ve(),{look:l,handDrawnSeed:u,themeVariables:h}=s,f=Uo(s.fontSize)[0]??Ipt,d=l==="handDrawn",p=a.children??[],m=s.ishikawa?.diagramPadding??20,g=s.ishikawa?.useMaxWidth??!1,y=Ii(e),v=y.append("g").attr("class","ishikawa"),x=d?Je.svg(y.node()):void 0,b=x?{roughSvg:x,seed:u??0,lineColor:h?.lineColor??"#333",fillColor:h?.mainBkg??"#fff"}:void 0,T=`ishikawa-arrow-${e}`;d||v.append("defs").append("marker").attr("id",T).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let E=0,w=Zv,k=d?void 0:Jv(v,E,w,E,w,"ishikawa-spine");if($pt(v,E,w,a.text,f,b),!p.length){d&&Jv(v,E,w,E,w,"ishikawa-spine",b),jCe(y,m,g);return}E-=20;let S=p.filter((R,P)=>P%2===0),A=p.filter((R,P)=>P%2===1),L=XCe(S),I=XCe(A),N=L.total+I.total,C=Zv,_=Zv;if(N>0){let R=Zv*2,P=Zv*.3;C=Math.max(P,R*(L.total/N)),_=Math.max(P,R*(I.total/N))}let D=f*2;C=Math.max(C,L.max*D),_=Math.max(_,I.max*D),w=Math.max(C,Zv),k&&k.attr("y1",w).attr("y2",w),v.select(".ishikawa-head-group").attr("transform",`translate(0,${w})`);let M=Math.ceil(p.length/2);for(let R=0;RMath.min(B,F.getBBox().x),1/0)}if(d)Jv(v,E,w,0,w,"ishikawa-spine",b);else{k.attr("x1",E);let R=`url(#${T})`;v.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",R)}jCe(y,m,g)},"draw"),XCe=o(t=>{let e=o(r=>r.children.reduce((n,i)=>n+1+e(i),0),"countDescendants");return t.reduce((r,n)=>{let i=e(n);return r.total+=i,r.max=Math.max(r.max,i),r},{total:0,max:0})},"sideStats"),$pt=o((t,e,r,n,i,a)=>{let s=Math.max(6,Math.floor(110/(i*.6))),l=t.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${e},${r})`),u=S_(l,ZCe(n,s),0,0,"ishikawa-head-label","start",i),h=u.node().getBBox(),f=Math.max(60,h.width+6),d=Math.max(40,h.height*2+40),p=`M 0 ${-d/2} L 0 ${d/2} Q ${f*2.4} 0 0 ${-d/2} Z`;if(a){let m=a.roughSvg.path(p,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});l.insert(()=>m,":first-child").attr("class","ishikawa-head")}else l.insert("path",":first-child").attr("class","ishikawa-head").attr("d",p);u.attr("transform",`translate(${(f-h.width)/2-h.x+3},${-h.y-h.height/2})`)},"drawHead"),zpt=o((t,e)=>{let r=[],n=[],i=o((a,s,l)=>{let u=e===-1?[...a].reverse():a;for(let h of u){let f=r.length,d=h.children??[];r.push({depth:l,text:ZCe(h.text,15),parentIndex:s,childCount:d.length}),l%2===0?(n.push(f),d.length&&i(d,f,l+1)):(d.length&&i(d,f,l+1),n.push(f))}},"walk");return i(t,-1,2),{entries:r,yOrder:n}},"flattenTree"),Gpt=o((t,e,r,n,i,a,s)=>{let l=t.append("g").attr("class","ishikawa-label-group"),h=S_(l,e,r,n+11*i,"ishikawa-label cause","middle",a).node().getBBox();if(s){let f=s.roughSvg.rectangle(h.x-20,h.y-2,h.width+40,h.height+4,{roughness:1.5,seed:s.seed,fill:s.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:s.lineColor,strokeWidth:2});l.insert(()=>f,":first-child").attr("class","ishikawa-label-box")}else l.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",h.x-20).attr("y",h.y-2).attr("width",h.width+40).attr("height",h.height+4)},"drawCauseLabel"),$W=o((t,e,r,n,i,a)=>{let s=Math.sqrt(n*n+i*i);if(s===0)return;let l=n/s,u=i/s,h=6,f=-u*h,d=l*h,p=e,m=r,g=`M ${p} ${m} L ${p-l*h*2+f} ${m-u*h*2+d} L ${p-l*h*2-f} ${m-u*h*2-d} Z`,y=a.roughSvg.path(g,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:"solid",stroke:a.lineColor,strokeWidth:1});t.append(()=>y)},"drawArrowMarker"),Vpt=o((t,e,r,n,i,a,s,l)=>{let u=e.children??[],h=a*(u.length?1:.2),f=-HCe*h,d=YCe*h*i,p=r+f,m=n+d;if(Jv(t,r,n,p,m,"ishikawa-branch",l),l&&$W(t,r,n,r-p,n-m,l),Gpt(t,e.text,p,m,i,s,l),!u.length)return;let{entries:g,yOrder:y}=zpt(u,i),v=g.length,x=new Array(v);for(let[k,S]of y.entries())x[S]=n+d*((k+1)/(v+1));let b=new Map;b.set(-1,{x0:r,y0:n,x1:p,y1:m,childCount:u.length,childrenDrawn:0});let T=-HCe,E=YCe*i,w=i<0?"ishikawa-label up":"ishikawa-label down";for(let[k,S]of g.entries()){let A=x[k],L=b.get(S.parentIndex),I=t.append("g").attr("class","ishikawa-sub-group"),N=0,C=0,_=0;if(S.depth%2===0){let D=L.y1-L.y0;N=KCe(L.x0,L.x1,D?(A-L.y0)/D:.5),C=A,_=N-(S.childCount>0?Ppt+S.childCount*Bpt:Opt),Jv(I,N,A,_,A,"ishikawa-sub-branch",l),l&&$W(I,N,A,1,0,l),S_(I,S.text,_,A,"ishikawa-label align","end",s)}else{let D=L.childrenDrawn++;N=KCe(L.x0,L.x1,(L.childCount-D)/(L.childCount+1)),C=L.y0,_=N+T*((A-C)/E),Jv(I,N,C,_,A,"ishikawa-sub-branch",l),l&&$W(I,N,C,N-_,C-A,l),S_(I,S.text,_,A,w,"end",s)}S.childCount>0&&b.set(k,{x0:N,y0:C,x1:_,y1:A,childCount:S.childCount,childrenDrawn:0})}},"drawBranch"),qpt=o(t=>t.split(/|\n/),"splitLines"),ZCe=o((t,e)=>{if(t.length<=e)return t;let r=[];for(let n of t.split(/\s+/)){let i=r.length-1;i>=0&&r[i].length+1+n.length<=e?r[i]+=" "+n:r.push(n)}return r.join(` +`)},"wrapText"),S_=o((t,e,r,n,i,a,s)=>{let l=qpt(e),u=s*1.05,h=t.append("text").attr("class",i).attr("text-anchor",a).attr("x",r).attr("y",n-(l.length-1)*u/2);for(let[f,d]of l.entries())h.append("tspan").attr("x",r).attr("dy",f===0?0:u).text(d);return h},"drawMultilineText"),KCe=o((t,e,r)=>t+(e-t)*r,"lerp"),Jv=o((t,e,r,n,i,a,s)=>{if(s){let l=s.roughSvg.line(e,r,n,i,{roughness:1.5,seed:s.seed,stroke:s.lineColor,strokeWidth:2});t.append(()=>l).attr("class",a);return}return t.append("line").attr("class",a).attr("x1",e).attr("y1",r).attr("x2",n).attr("y2",i)},"drawLine"),JCe={draw:Fpt}});var Upt,t6e,r6e=O(()=>{"use strict";Upt=o(t=>` +.ishikawa .ishikawa-spine, +.ishikawa .ishikawa-branch, +.ishikawa .ishikawa-sub-branch { + stroke: ${t.lineColor}; + stroke-width: 2; + fill: none; +} + +.ishikawa .ishikawa-sub-branch { + stroke-width: 1; +} + +.ishikawa .ishikawa-arrow { + fill: ${t.lineColor}; +} + +.ishikawa .ishikawa-head { + fill: ${t.mainBkg}; + stroke: ${t.lineColor}; + stroke-width: 2; +} + +.ishikawa .ishikawa-label-box { + fill: ${t.mainBkg}; + stroke: ${t.lineColor}; + stroke-width: 2; +} + +.ishikawa text { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + fill: ${t.textColor}; +} + +.ishikawa .ishikawa-head-label { + font-weight: 600; + text-anchor: middle; + dominant-baseline: middle; + font-size: 14px; +} + +.ishikawa .ishikawa-label { + text-anchor: end; +} + +.ishikawa .ishikawa-label.cause { + text-anchor: middle; + dominant-baseline: middle; +} + +.ishikawa .ishikawa-label.align { + text-anchor: end; + dominant-baseline: middle; +} + +.ishikawa .ishikawa-label.up { + dominant-baseline: baseline; +} + +.ishikawa .ishikawa-label.down { + dominant-baseline: hanging; +} +`,"getStyles"),t6e=Upt});var n6e={};vr(n6e,{diagram:()=>Wpt});var Wpt,i6e=O(()=>{"use strict";UCe();WCe();e6e();r6e();Wpt={parser:qCe,get db(){return new E_},renderer:JCe,styles:t6e}});var zW,o6e,l6e=O(()=>{"use strict";zW=(function(){var t=o(function(b,T,E,w){for(E=E||{},w=b.length;w--;E[b[w]]=T);return E},"o"),e=[5,8],r=[7,8,11,12,17,19,22,24],n=[1,17],i=[1,18],a=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],s=[1,31],l=[1,39],u=[7,8,11,12,17,19,22,24,27],h=[1,57],f=[1,56],d=[1,58],p=[1,59],m=[1,60],g=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],y={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:o(function(T,E,w,k,S,A,L){var I=A.length-1;switch(S){case 1:return A[I-1];case 2:case 3:case 4:this.$=[];break;case 5:A[I-1].push(A[I]),this.$=A[I-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=A[I];break;case 8:k.setDiagramTitle(A[I].substr(6)),this.$=A[I].substr(6);break;case 9:k.addSubsetData([A[I]],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 10:k.addSubsetData([A[I-1]],A[I],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 11:k.addSubsetData([A[I-2]],void 0,parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 12:k.addSubsetData([A[I-3]],A[I-2],parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 13:if(A[I].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I]),k.addSubsetData(A[I],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 14:if(A[I-1].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I-1]),k.addSubsetData(A[I-1],A[I],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 15:if(A[I-2].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I-2]),k.addSubsetData(A[I-2],void 0,parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 16:if(A[I-3].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I-3]),k.addSubsetData(A[I-3],A[I-2],parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 17:case 18:case 19:k.addTextData(A[I-1],A[I],void 0);break;case 20:case 21:k.addTextData(A[I-2],A[I-1],A[I]);break;case 23:k.addStyleData(A[I-1],A[I]);break;case 24:case 25:case 26:var N=k.getCurrentSets();if(!N)throw new Error("text requires set");k.addTextData(N,A[I],void 0);break;case 27:case 28:var N=k.getCurrentSets();if(!N)throw new Error("text requires set");k.addTextData(N,A[I-1],A[I]);break;case 29:case 41:this.$=[A[I]];break;case 30:case 42:this.$=[...A[I-2],A[I]];break;case 31:this.$=[A[I-2],A[I]];break;case 33:this.$=A[I].join(" ");break;case 34:this.$=[A[I]];break;case 35:A[I-1].push(A[I]),this.$=A[I-1];break;case 43:case 44:this.$=A[I];break}},"anonymous"),table:[t(e,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(r,[2,4],{6:5}),t(e,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},t(r,[2,5]),t(r,[2,6]),t(r,[2,7]),t(r,[2,8]),{13:16,20:n,21:i},{13:20,18:19,20:n,21:i},{13:20,18:21,20:n,21:i},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:n,21:i},t(r,[2,9],{14:[1,27],15:[1,28]}),t(a,[2,43]),t(a,[2,44]),t(r,[2,13],{14:[1,29],15:[1,30],27:s}),t(a,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:s},t(r,[2,22]),t(r,[2,24],{14:[1,35]}),t(r,[2,25],{14:[1,36]}),t(r,[2,26]),{20:l,25:37,26:38,27:s},t(r,[2,10],{15:[1,40]}),{16:[1,41]},t(r,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:n,21:i},t(r,[2,17],{14:[1,45]}),t(r,[2,18],{14:[1,46]}),t(r,[2,19]),t(r,[2,27]),t(r,[2,28]),t(r,[2,23],{27:[1,47]}),t(u,[2,29]),{15:[1,48]},{16:[1,49]},t(r,[2,11]),{16:[1,50]},t(r,[2,15]),t(a,[2,42]),t(r,[2,20]),t(r,[2,21]),{20:l,26:51},{16:h,20:f,21:[1,53],28:52,29:54,30:55,31:d,32:p,33:m},t(r,[2,12]),t(r,[2,16]),t(u,[2,30]),t(u,[2,31]),t(u,[2,32]),t(u,[2,33],{30:61,16:h,20:f,31:d,32:p,33:m}),t(g,[2,34]),t(g,[2,36]),t(g,[2,37]),t(g,[2,38]),t(g,[2,39]),t(g,[2,40]),t(g,[2,35])],defaultActions:{6:[2,1]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var w=new Error(T);throw w.hash=E,w}},"parseError"),parse:o(function(T){var E=this,w=[0],k=[],S=[null],A=[],L=this.table,I="",N=0,C=0,_=0,D=2,M=1,R=A.slice.call(arguments,1),P=Object.create(this.lexer),B={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(B.yy[F]=this.yy[F]);P.setInput(T,B.yy),B.yy.lexer=P,B.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var G=P.yylloc;A.push(G);var $=P.options&&P.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V(Me){w.length=w.length-2*Me,S.length=S.length-Me,A.length=A.length-Me}o(V,"popStack");function X(){var Me;return Me=k.pop()||P.lex()||M,typeof Me!="number"&&(Me instanceof Array&&(k=Me,Me=k.pop()),Me=E.symbols_[Me]||Me),Me}o(X,"lex");for(var Q,H,ie,Y,le,ee,J={},te,Z,xe,de;;){if(ie=w[w.length-1],this.defaultActions[ie]?Y=this.defaultActions[ie]:((Q===null||typeof Q>"u")&&(Q=X()),Y=L[ie]&&L[ie][Q]),typeof Y>"u"||!Y.length||!Y[0]){var Se="";de=[];for(te in L[ie])this.terminals_[te]&&te>D&&de.push("'"+this.terminals_[te]+"'");P.showPosition?Se="Parse error on line "+(N+1)+`: +`+P.showPosition()+` +Expecting `+de.join(", ")+", got '"+(this.terminals_[Q]||Q)+"'":Se="Parse error on line "+(N+1)+": Unexpected "+(Q==M?"end of input":"'"+(this.terminals_[Q]||Q)+"'"),this.parseError(Se,{text:P.match,token:this.terminals_[Q]||Q,line:P.yylineno,loc:G,expected:de})}if(Y[0]instanceof Array&&Y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ie+", token: "+Q);switch(Y[0]){case 1:w.push(Q),S.push(P.yytext),A.push(P.yylloc),w.push(Y[1]),Q=null,H?(Q=H,H=null):(C=P.yyleng,I=P.yytext,N=P.yylineno,G=P.yylloc,_>0&&_--);break;case 2:if(Z=this.productions_[Y[1]][1],J.$=S[S.length-Z],J._$={first_line:A[A.length-(Z||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(Z||1)].first_column,last_column:A[A.length-1].last_column},$&&(J._$.range=[A[A.length-(Z||1)].range[0],A[A.length-1].range[1]]),ee=this.performAction.apply(J,[I,C,N,B.yy,Y[1],S,A].concat(R)),typeof ee<"u")return ee;Z&&(w=w.slice(0,-1*Z*2),S=S.slice(0,-1*Z),A=A.slice(0,-1*Z)),w.push(this.productions_[Y[1]][0]),S.push(J.$),A.push(J._$),xe=L[w[w.length-2]][w[w.length-1]],w.push(xe);break;case 3:return!0}}return!0},"parse")},v=(function(){var b={EOF:1,parseError:o(function(E,w){if(this.yy.parser)this.yy.parser.parseError(E,w);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,w=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),w.length-1&&(this.yylineno-=w.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:w?(w.length===k.length?this.yylloc.first_column:0)+k[k.length-w.length].length-w[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+E+"^"},"showPosition"),test_match:o(function(T,E){var w,k,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),k=T[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],w=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),w)return w;if(this._backtrack){for(var A in S)this[A]=S[A];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,w,k;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),A=0;AE[0].length)){if(E=w,k=A,this.options.backtrack_lexer){if(T=this.test_match(w,S[A]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,S[k]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,w,k,S){var A=S;switch(k){case 0:break;case 1:break;case 2:break;case 3:if(E.getIndentMode&&E.getIndentMode())return E.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:E.setIndentMode&&E.setIndentMode(!1),this.begin("INITIAL"),this.unput(w.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(E.consumeIndentText)E.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return w.yytext=w.yytext.slice(2,-2),14;break;case 17:return w.yytext=w.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return b})();y.lexer=v;function x(){this.yy={}}return o(x,"Parser"),x.prototype=y,y.Parser=x,new x})();zW.parser=zW;o6e=zW});function s0t(){return Pn(a0t,Zt().venn)}var GW,VW,qW,UW,WW,HW,jpt,Xpt,N3,Kpt,Qpt,Zpt,Jpt,C_,e0t,t0t,r0t,n0t,i0t,a0t,o0t,c6e,u6e=O(()=>{"use strict";ar();$r();si();La();GW=[],VW=[],qW=[],UW=new Set,HW=!1,jpt=o((t,e,r)=>{let n=C_(t).sort(),i=r??10/Math.pow(t.length,2);WW=n,n.length===1&&UW.add(n[0]),GW.push({sets:n,size:i,label:e?N3(e):void 0})},"addSubsetData"),Xpt=o(()=>GW,"getSubsetData"),N3=o(t=>{let e=t.trim();return e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e},"normalizeText"),Kpt=o(t=>t&&N3(t),"normalizeStyleValue"),Qpt=o((t,e,r)=>{let n=N3(e);VW.push({sets:C_(t).sort(),id:n,label:r?N3(r):void 0})},"addTextData"),Zpt=o((t,e)=>{let r=C_(t).sort(),n={};for(let[i,a]of e)n[i]=Kpt(a)??a;qW.push({targets:r,styles:n})},"addStyleData"),Jpt=o(()=>qW,"getStyleData"),C_=o(t=>t.map(e=>N3(e)),"normalizeIdentifierList"),e0t=o(t=>{let r=C_(t).filter(n=>!UW.has(n));if(r.length>0)throw new Error(`unknown set identifier: ${r.join(", ")}`)},"validateUnionIdentifiers"),t0t=o(()=>VW,"getTextData"),r0t=o(()=>WW,"getCurrentSets"),n0t=o(()=>HW,"getIndentMode"),i0t=o(t=>{HW=t},"setIndentMode"),a0t=gr.venn;o(s0t,"getConfig");o0t=o(()=>{_r(),GW.length=0,VW.length=0,qW.length=0,UW.clear(),WW=void 0,HW=!1},"customClear"),c6e={getConfig:s0t,clear:o0t,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr,addSubsetData:jpt,getSubsetData:Xpt,addTextData:Qpt,addStyleData:Zpt,validateUnionIdentifiers:e0t,getTextData:t0t,getStyleData:Jpt,getCurrentSets:r0t,getIndentMode:n0t,setIndentMode:i0t}});var l0t,h6e,f6e=O(()=>{"use strict";l0t=o(t=>` + .venn-title { + font-size: 32px; + fill: ${t.vennTitleTextColor}; + font-family: ${t.fontFamily}; + } + + .venn-circle text { + font-size: 48px; + font-family: ${t.fontFamily}; + } + + .venn-intersection text { + font-size: 48px; + fill: ${t.vennSetTextColor}; + font-family: ${t.fontFamily}; + } + + .venn-text-node { + font-family: ${t.fontFamily}; + color: ${t.vennSetTextColor}; + } +`,"getStyles"),h6e=l0t});function A_(t,e){let r=u0t(t),n=r.filter(l=>c0t(l,t)),i=0,a=0,s=[];if(n.length>1){let l=g6e(n);for(let h=0;hf.angle-h.angle);let u=n[n.length-1];for(let h=0;hg.radius*2&&(T=g.radius*2),(p==null||p.width>T)&&(p={circle:g,width:T,p1:f,p2:u,large:T>g.radius,sweep:!0})}p!=null&&(s.push(p),i+=XW(p.circle.radius,p.width),u=f)}}else{let l=t[0];for(let h=1;hMath.abs(l.radius-t[h].radius)){u=!0;break}u?i=a=0:(i=l.radius*l.radius*Math.PI,s.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-1e-10,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return a/=2,e&&(e.area=i+a,e.arcArea=i,e.polygonArea=a,e.arcs=s,e.innerPoints=n,e.intersectionPoints=r),i+a}function c0t(t,e){return e.every(r=>No(t,r)=t+e)return 0;if(r<=Math.abs(t-e))return Math.PI*Math.min(t,e)*Math.min(t,e);let n=t-(r*r-e*e+t*t)/(2*r),i=e-(r*r-t*t+e*e)/(2*r);return XW(t,n)+XW(e,i)}function m6e(t,e){let r=No(t,e),n=t.radius,i=e.radius;if(r>=n+i||r<=Math.abs(n-i))return[];let a=(n*n-i*i+r*r)/(2*r),s=Math.sqrt(n*n-a*a),l=t.x+a*(e.x-t.x)/r,u=t.y+a*(e.y-t.y)/r,h=-(e.y-t.y)*(s/r),f=-(e.x-t.x)*(s/r);return[{x:l+h,y:u-f},{x:l-h,y:u+f}]}function g6e(t){let e={x:0,y:0};for(let r of t)e.x+=r.x,e.y+=r.y;return e.x/=t.length,e.y/=t.length,e}function h0t(t,e,r,n){n=n||{};let i=n.maxIterations||100,a=n.tolerance||1e-10,s=t(e),l=t(r),u=r-e;if(s*l>0)throw"Initial bisect points must have opposite signs";if(s===0)return e;if(l===0)return r;for(let h=0;h=0&&(e=f),Math.abs(u)KW(e))}function e2(t,e){let r=0;for(let n=0;nw.fx-k.fx,"sortOrder"),x=e.slice(),b=e.slice(),T=e.slice(),E=e.slice();for(let w=0;w{let L=A.slice();return L.fx=A.fx,L.id=A.id,L});S.sort((A,L)=>A.id-L.id),r.history.push({x:g[0].slice(),fx:g[0].fx,simplex:S})}p=0;for(let S=0;S=g[m-1].fx){let S=!1;if(b.fx>k.fx?(hf(T,1+f,x,-f,k),T.fx=t(T),T.fx=1)break;for(let A=1;Al+a*i*u||h>=v)y=i;else{if(Math.abs(d)<=-s*u)return i;d*(y-g)>=0&&(y=g),g=i,v=h}return 0}o(m,"zoom");for(let g=0;g<10;++g){if(hf(n.x,1,r.x,i,e),h=n.fx=t(n.x,n.fxprime),d=e2(n.fxprime,e),h>l+a*i*u||g&&h>=f)return m(p,i,f);if(Math.abs(d)<=-s*u)return i;if(d>=0)return m(i,p,h);f=h,p=i,i*=2}return i}function d0t(t,e,r){let n={x:e.slice(),fx:0,fxprime:e.slice()},i={x:e.slice(),fx:0,fxprime:e.slice()},a=e.slice(),s,l,u=1,h;r=r||{},h=r.maxIterations||e.length*20,n.fx=t(n.x,n.fxprime),s=n.fxprime.slice(),ZW(s,n.fxprime,-1);for(let f=0;f{let d={};for(let p=0;ptH(t,e,n)-r,0,t+e)}function p0t(t,e={}){let r=e.distinct,n=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(o(i,"toKey"),r){let l=new Map;for(let u of n)for(let h=0;hl===u?0:la.sets.length===2).forEach(a=>{let s=r[a.sets[0]],l=r[a.sets[1]],u=Math.sqrt(e[s].size/Math.PI),h=Math.sqrt(e[l].size/Math.PI),f=JW(u,h,a.size);n[s][l]=n[l][s]=f;let d=0;a.size+1e-10>=Math.min(e[s].size,e[l].size)?d=1:a.size<=1e-10&&(d=-1),i[s][l]=i[l][s]=d}),{distances:n,constraints:i}}function g0t(t,e,r,n){for(let a=0;a0&&g<=d||p<0&&g>=d||(i+=2*y*y,e[2*a]+=4*y*(s-h),e[2*a+1]+=4*y*(l-f),e[2*u]+=4*y*(h-s),e[2*u+1]+=4*y*(f-l))}}return i}function y0t(t,e={}){let r=x0t(t,e),n=e.lossFunction||t2;if(t.length>=8){let i=v0t(t,e),a=n(i,t),s=n(r,t);a+1e-8p.map(m=>m/l));let u=o((p,m)=>g0t(p,m,a,s),"obj"),h=null;for(let p=0;pd.sets.length===2);for(let d of t){let p=d.weight!=null?d.weight:1,m=d.sets[0],g=d.sets[1];d.size+x6e>=Math.min(n[m].size,n[g].size)&&(p=0),i[m].push({set:g,size:d.size,weight:p}),i[g].push({set:m,size:d.size,weight:p})}let a=[];Object.keys(i).forEach(d=>{let p=0;for(let m=0;mt[s]));let a=n.weight!=null?n.weight:1;r+=a*(i-n.size)*(i-n.size)}return r}function b6e(t,e){let r=0;for(let n of e){if(n.sets.length===1)continue;let i;if(n.sets.length===2){let l=t[n.sets[0]],u=t[n.sets[1]];i=tH(l.radius,u.radius,No(l,u))}else i=A_(n.sets.map(l=>t[l]));let a=n.weight!=null?n.weight:1,s=Math.log((i+1)/(n.size+1));r+=a*s*s}return r}function b0t(t,e,r){if(r==null?t.sort((i,a)=>a.radius-i.radius):t.sort(r),t.length>0){let i=t[0].x,a=t[0].y;for(let s of t)s.x-=i,s.y-=a}if(t.length===2&&No(t[0],t[1])1){let i=Math.atan2(t[1].x,t[1].y)-e,a=Math.cos(i),s=Math.sin(i);for(let l of t){let u=l.x,h=l.y;l.x=a*u-s*h,l.y=s*u+a*h}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-e;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){let a=t[1].y/(1e-10+t[1].x);for(let s of t){var n=(s.x+a*s.y)/(1+a*a);s.x=2*n-s.x,s.y=2*n*a-s.y}}}}function T0t(t){t.forEach(i=>{i.parent=i});function e(i){return i.parent!==i&&(i.parent=e(i.parent)),i.parent}o(e,"find");function r(i,a){let s=e(i),l=e(a);s.parent=l}o(r,"union");for(let i=0;i{delete i.parent}),Array.from(n.values())}function eH(t){let e=o(r=>{let n=t.reduce((a,s)=>Math.max(a,s[r]+s.radius),Number.NEGATIVE_INFINITY),i=t.reduce((a,s)=>Math.min(a,s[r]-s.radius),Number.POSITIVE_INFINITY);return{max:n,min:i}},"minMax");return{xRange:e("x"),yRange:e("y")}}function T6e(t,e,r){e==null&&(e=Math.PI/2);let n=E6e(t).map(h=>Object.assign({},h)),i=T0t(n);for(let h of i){b0t(h,e,r);let f=eH(h);h.size=(f.xRange.max-f.xRange.min)*(f.yRange.max-f.yRange.min),h.bounds=f}i.sort((h,f)=>f.size-h.size),n=i[0];let a=n.bounds,s=(a.xRange.max-a.xRange.min)/50;function l(h,f,d){if(!h)return;let p=h.bounds,m,g;if(f)m=a.xRange.max-p.xRange.min+s;else{m=a.xRange.max-p.xRange.max;let y=(p.xRange.max-p.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;y<0&&(m+=y)}if(d)g=a.yRange.max-p.yRange.min+s;else{g=a.yRange.max-p.yRange.max;let y=(p.yRange.max-p.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;y<0&&(g+=y)}for(let y of h)y.x+=m,y.y+=g,n.push(y)}o(l,"addCluster");let u=1;for(;u({radius:f*m.radius,x:n+d+(m.x-s.min)*f,y:n+p+(m.y-l.min)*f,setid:m.setid})))}function k6e(t){let e={};for(let r of t)e[r.setid]=r;return e}function E6e(t){return Object.keys(t).map(r=>Object.assign(t[r],{setid:r}))}function S6e(t={}){let e=!1,r=600,n=350,i=15,a=1e3,s=Math.PI/2,l=!0,u=null,h=!0,f=!0,d=null,p=null,m=!1,g=null,y=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,v={},x=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],b=0,T=o(function(S){if(S in v)return v[S];var A=v[S]=x[b];return b+=1,b>=x.length&&(b=0),A},"colours"),E=v6e,w=t2;function k(S){let A=S.datum(),L=new Set;A.forEach(Y=>{Y.size==0&&Y.sets.length==1&&L.add(Y.sets[0])}),A=A.filter(Y=>!Y.sets.some(le=>L.has(le)));let I={},N={};if(A.length>0){let Y=E(A,{lossFunction:w,distinct:m});l&&(Y=T6e(Y,s,p)),I=w6e(Y,r,n,i,u),N=A6e(I,A,y)}let C={};A.forEach(Y=>{Y.label&&(C[Y.sets]=Y.label)});function _(Y){if(Y.sets in C)return C[Y.sets];if(Y.sets.length==1)return""+Y.sets[0]}o(_,"label"),S.selectAll("svg").data([I]).enter().append("svg");let D=S.select("svg");e?D.attr("viewBox",`0 0 ${r} ${n}`):D.attr("width",r).attr("height",n);let M={},R=!1;D.selectAll(".venn-area path").each(function(Y){let le=this.getAttribute("d");Y.sets.length==1&&le&&!m&&(R=!0,M[Y.sets[0]]=E0t(le))});function P(Y){return le=>{let ee=Y.sets.map(J=>{let te=M[J],Z=I[J];return te||(te={x:r/2,y:n/2,radius:1}),Z||(Z={x:r/2,y:n/2,radius:1}),{x:te.x*(1-le)+Z.x*le,y:te.y*(1-le)+Z.y*le,radius:te.radius*(1-le)+Z.radius*le}});return p6e(ee,g)}}o(P,"pathTween");let B=D.selectAll(".venn-area").data(A,Y=>Y.sets),F=B.enter().append("g").attr("class",Y=>`venn-area venn-${Y.sets.length==1?"circle":"intersection"}${Y.colour||Y.color?" venn-coloured":""}`).attr("data-venn-sets",Y=>Y.sets.join("_")),G=F.append("path"),$=F.append("text").attr("class","label").text(Y=>_(Y)).attr("text-anchor","middle").attr("dy",".35em").attr("x",r/2).attr("y",n/2);f&&(G.style("fill-opacity","0").filter(Y=>Y.sets.length==1).style("fill",Y=>Y.colour?Y.colour:Y.color?Y.color:T(Y.sets)).style("fill-opacity",".25"),$.style("fill",Y=>Y.colour||Y.color?"#FFF":t.textFill?t.textFill:Y.sets.length==1?T(Y.sets):"#444"));function V(Y){return typeof Y.transition=="function"?Y.transition("venn").duration(a):Y}o(V,"asTransition");let X=S;R&&typeof X.transition=="function"?(X=V(S),X.selectAll("path").attrTween("d",P)):X.selectAll("path").attr("d",Y=>p6e(Y.sets.map(le=>I[le])),g);let Q=X.selectAll("text").filter(Y=>Y.sets in N).text(Y=>_(Y)).attr("x",Y=>Math.floor(N[Y.sets].x)).attr("y",Y=>Math.floor(N[Y.sets].y));h&&(R?"on"in Q?Q.on("end",YW(I,_)):Q.each("end",YW(I,_)):Q.each(YW(I,_)));let H=V(B.exit()).remove();typeof B.transition=="function"&&H.selectAll("path").attrTween("d",P);let ie=H.selectAll("text").attr("x",r/2).attr("y",n/2);return d!==null&&($.style("font-size","0px"),Q.style("font-size",d),ie.style("font-size","0px")),{circles:I,textCentres:N,nodes:B,enter:F,update:X,exit:H}}return o(k,"chart"),k.wrap=function(S){return arguments.length?(h=S,k):h},k.useViewBox=function(){return e=!0,k},k.width=function(S){return arguments.length?(r=S,k):r},k.height=function(S){return arguments.length?(n=S,k):n},k.padding=function(S){return arguments.length?(i=S,k):i},k.distinct=function(S){return arguments.length?(m=S,k):m},k.colours=function(S){return arguments.length?(T=S,k):T},k.colors=function(S){return arguments.length?(T=S,k):T},k.fontSize=function(S){return arguments.length?(d=S,k):d},k.round=function(S){return arguments.length?(g=S,k):g},k.duration=function(S){return arguments.length?(a=S,k):a},k.layoutFunction=function(S){return arguments.length?(E=S,k):E},k.normalize=function(S){return arguments.length?(l=S,k):l},k.scaleToFit=function(S){return arguments.length?(u=S,k):u},k.styled=function(S){return arguments.length?(f=S,k):f},k.orientation=function(S){return arguments.length?(s=S,k):s},k.orientationOrder=function(S){return arguments.length?(p=S,k):p},k.lossFunction=function(S){return arguments.length?(w=S==="default"?t2:S==="logRatio"?b6e:S,k):w},k}function YW(t,e){return function(r){let n=this,i=t[r.sets[0]].radius||50,a=e(r)||"",s=a.split(/\s+/).reverse(),u=(a.length+s.length)/3,h=s.pop(),f=[h],d=0,p=1.1;n.textContent=null;let m=[];function g(T){let E=n.ownerDocument.createElementNS(n.namespaceURI,"tspan");return E.textContent=T,m.push(E),n.append(E),E}o(g,"append");let y=g(h);for(;h=s.pop(),!!h;){f.push(h);let T=f.join(" ");y.textContent=T,T.length>u&&y.getComputedTextLength()>i&&(f.pop(),y.textContent=f.join(" "),f=[h],y=g(h),d++)}let v=.35-d*p/2,x=n.getAttribute("x"),b=n.getAttribute("y");m.forEach((T,E)=>{T.setAttribute("x",x),T.setAttribute("y",b),T.setAttribute("dy",`${v+E*p}em`)})}}function jW(t,e,r){let n=e[0].radius-No(e[0],t);for(let i=1;i=a&&(i=n[f],a=d)}let s=y6e(f=>-1*jW({x:f[0],y:f[1]},t,e),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:r?0:s[0],y:s[1]},u=!0;for(let f of t)if(No(l,f)>f.radius){u=!1;break}for(let f of e)if(No(l,f)f.p1))}function w0t(t){let e={},r=Object.keys(t);for(let n of r)e[n]=[];for(let n=0;n0&&console.log("WARNING: area "+s+" not represented on screen")}return n}function k0t(t,e,r){let n=[];return n.push(` +M`,t,e),n.push(` +m`,-r,0),n.push(` +a`,r,r,0,1,0,r*2,0),n.push(` +a`,r,r,0,1,0,-r*2,0),n.join(" ")}function E0t(t){let e=t.split(" ");return{x:Number.parseFloat(e[1]),y:Number.parseFloat(e[2]),radius:-Number.parseFloat(e[4])}}function _6e(t){if(t.length===0)return[];let e={};return A_(t,e),e.arcs}function D6e(t,e){if(t.length===0)return"M 0 0";let r=Math.pow(10,e||0),n=e!=null?a=>Math.round(a*r)/r:a=>a;if(t.length==1){let a=t[0].circle;return k0t(n(a.x),n(a.y),n(a.radius))}let i=[` +M`,n(t[0].p2.x),n(t[0].p2.y)];for(let a of t){let s=n(a.circle.radius);i.push(` +A`,s,s,0,a.large?1:0,a.sweep?1:0,n(a.p1.x),n(a.p1.y))}return i.join(" ")}function p6e(t,e){return D6e(_6e(t),e)}function R6e(t,e={}){let{lossFunction:r,layoutFunction:n=v6e,normalize:i=!0,orientation:a=Math.PI/2,orientationOrder:s,width:l=600,height:u=350,padding:h=15,scaleToFit:f=!1,symmetricalTextCentre:d=!1,distinct:p,round:m=2}=e,g=n(t,{lossFunction:r==="default"||!r?t2:r==="logRatio"?b6e:r,distinct:p});i&&(g=T6e(g,a,s));let y=w6e(g,l,u,h,f),v=A6e(y,t,d),x=new Map(Object.keys(y).map(E=>[E,{set:E,x:y[E].x,y:y[E].y,radius:y[E].radius}])),b=t.map(E=>{let w=E.sets.map(A=>x.get(A)),k=_6e(w),S=D6e(k,m);return{circles:w,arcs:k,path:S,area:E,has:new Set(E.sets)}});function T(E){let w="";for(let k of b)k.has.size>E.length&&E.every(S=>k.has.has(S))&&(w+=" "+k.path);return w}return o(T,"genDistinctPath"),b.map(({circles:E,arcs:w,path:k,area:S})=>({data:S,text:v[S.sets],circles:E,arcs:w,path:k,distinctPath:k+T(S.sets)}))}var x6e,L6e=O(()=>{"use strict";o(A_,"intersectionArea");o(c0t,"containedInCircles");o(u0t,"getIntersectionPoints");o(XW,"circleArea");o(No,"distance");o(tH,"circleOverlap");o(m6e,"circleCircleIntersection");o(g6e,"getCenter");o(h0t,"bisect");o(KW,"zeros");o(d6e,"zerosM");o(e2,"dot");o(QW,"norm2");o(ZW,"scale");o(hf,"weightedSum");o(y6e,"nelderMead");o(f0t,"wolfeLineSearch");o(d0t,"conjugateGradient");o(v6e,"venn");x6e=1e-10;o(JW,"distanceFromIntersectArea");o(p0t,"addMissingAreas");o(m0t,"getDistanceMatrices");o(g0t,"constrainedMDSGradient");o(y0t,"bestInitialLayout");o(v0t,"constrainedMDSLayout");o(x0t,"greedyLayout");o(t2,"lossFunction");o(b6e,"logRatioLossFunction");o(b0t,"orientateCircles");o(T0t,"disjointCluster");o(eH,"getBoundingBox");o(T6e,"normalizeSolution");o(w6e,"scaleSolution");o(k6e,"toObjectNotation");o(E6e,"fromObjectNotation");o(S6e,"VennDiagram");o(YW,"wrapText");o(jW,"circleMargin");o(C6e,"computeTextCentre");o(w0t,"getOverlappingCircles");o(A6e,"computeTextCentres");o(k0t,"circlePath");o(E0t,"circleFromPath");o(_6e,"intersectionAreaArcs");o(D6e,"arcsToPath");o(p6e,"intersectionAreaPath");o(R6e,"layout")});function C0t(t){let e=new Map;for(let r of t){let n=r.targets.join("|"),i=e.get(n);i?Object.assign(i,r.styles):e.set(n,{...r.styles})}return e}function ng(t){return t.join("|")}function _0t(t,e,r,n,i,a){let s=t?.useDebugLayout??!1,u=r.select("svg").append("g").attr("class","venn-text-nodes"),h=new Map;for(let f of n){let d=ng(f.sets),p=h.get(d);p?p.push(f):h.set(d,[f])}for(let[f,d]of h.entries()){let p=e.get(f);if(!p?.text)continue;let m=p.text.x,g=p.text.y,y=Math.min(...p.circles.map(D=>D.radius)),v=Math.min(...p.circles.map(D=>D.radius-Math.hypot(m-D.x,g-D.y))),x=Number.isFinite(v)?Math.max(0,v):0;x===0&&Number.isFinite(y)&&(x=y*.6);let b=u.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);s&&b.append("circle").attr("class","venn-text-debug-circle").attr("cx",m).attr("cy",g).attr("r",x).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);let T=Math.max(80*i,x*2*.95),E=Math.max(60*i,x*2*.95),S=(p.data.label&&p.data.label.length>0?Math.min(32*i,x*.25):0)+(d.length<=2?30*i:0),A=m-T/2,L=g-E/2+S,I=Math.max(1,Math.ceil(Math.sqrt(d.length))),N=Math.max(1,Math.ceil(d.length/I)),C=T/I,_=E/N;for(let[D,M]of d.entries()){let R=D%I,P=Math.floor(D/I),B=A+C*(R+.5),F=L+_*(P+.5);s&&b.append("rect").attr("class","venn-text-debug-cell").attr("x",A+C*R).attr("y",L+_*P).attr("width",C).attr("height",_).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*i).attr("stroke-dasharray",`${4*i} ${3*i}`);let G=C*.9,$=_*.9,V=b.append("foreignObject").attr("class","venn-text-node-fo").attr("width",G).attr("height",$).attr("x",B-G/2).attr("y",F-$/2).attr("overflow","visible"),X=a.get(M.id)?.color,Q=V.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(M.label??M.id);X&&Q.style("color",X)}}}var A0t,N6e,M6e=O(()=>{"use strict";Ar();Ys();$r();Ul();L6e();Ti();Wt();o(C0t,"buildStyleByKey");A0t=o((t,e,r,n)=>{let i=n.db,a=i.getConfig?.(),{themeVariables:s,look:l,handDrawnSeed:u}=Zt(),h=l==="handDrawn",f=[s.venn1,s.venn2,s.venn3,s.venn4,s.venn5,s.venn6,s.venn7,s.venn8].filter(Boolean),d=i.getDiagramTitle?.(),p=i.getSubsetData(),m=i.getTextData(),g=C0t(i.getStyleData()),y=a?.width??800,v=a?.height??450,b=y/1600,T=d?48*b:0,E=s.primaryTextColor??s.textColor,w=Ii(e);w.attr("viewBox",`0 0 ${y} ${v}`),d&&w.append("text").text(d).attr("class","venn-title").attr("font-size",`${32*b}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*b).style("fill",s.vennTitleTextColor||s.titleColor);let k=je(document.createElement("div")),S=S6e().width(y).height(v-T);k.datum(p).call(S);let A=h?Je.svg(k.select("svg").node()):void 0,L=R6e(p,{width:y,height:v-T,padding:a?.padding??15}),I=new Map;for(let D of L){let M=ng([...D.data.sets].sort());I.set(M,D)}m.length>0&&_0t(a,I,k,m,b,g);let N=Ji(s.background||"#f4f4f4");k.selectAll(".venn-circle").each(function(D,M){let R=je(this),B=ng([...D.sets].sort()),F=g.get(B),G=F?.fill||f[M%f.length]||s.primaryColor;R.classed(`venn-set-${M%8}`,!0);let $=F?.["fill-opacity"]??.1,V=F?.stroke||G,X=F?.["stroke-width"]||`${5*b}`;if(h&&A){let H=I.get(B);if(H&&H.circles.length>0){let ie=H.circles[0],Y=A.circle(ie.x,ie.y,ie.radius*2,{roughness:.7,seed:u,fill:K3(G,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+M*60,stroke:V,strokeWidth:parseFloat(String(X))});R.select("path").remove(),R.node()?.insertBefore(Y,R.select("text").node())}}else R.select("path").style("fill",G).style("fill-opacity",$).style("stroke",V).style("stroke-width",X).style("stroke-opacity",.95);let Q=F?.color||(N?Lt(G,30):Bt(G,30));R.select("text").style("font-size",`${48*b}px`).style("fill",Q)}),h&&A?k.selectAll(".venn-intersection").each(function(D){let M=je(this),P=ng([...D.sets].sort()),B=g.get(P),F=B?.fill;if(F){let G=M.select("path"),$=G.attr("d");if($){let V=A.path($,{roughness:.7,seed:u,fill:K3(F,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),X=G.node();X?.parentNode?.insertBefore(V,X),G.remove()}}else M.select("path").style("fill-opacity",0);M.select("text").style("font-size",`${48*b}px`).style("fill",B?.color??s.vennSetTextColor??E)}):(k.selectAll(".venn-intersection text").style("font-size",`${48*b}px`).style("fill",D=>{let R=ng([...D.sets].sort());return g.get(R)?.color??s.vennSetTextColor??E}),k.selectAll(".venn-intersection path").style("fill-opacity",D=>{let R=ng([...D.sets].sort());return g.get(R)?.fill?1:0}).style("fill",D=>{let R=ng([...D.sets].sort());return g.get(R)?.fill??"transparent"}));let C=w.append("g").attr("transform",`translate(0, ${T})`),_=k.select("svg").node();if(_&&"childNodes"in _)for(let D of[..._.childNodes])C.node()?.appendChild(D);Zr(w,v,y,a?.useMaxWidth??!0)},"draw");o(ng,"stableSetsKey");o(_0t,"renderTextNodes");N6e={draw:A0t}});var I6e={};vr(I6e,{diagram:()=>D0t});var D0t,O6e=O(()=>{"use strict";l6e();u6e();f6e();M6e();D0t={parser:o6e,db:c6e,renderer:N6e,styles:h6e}});var r2,rH=O(()=>{"use strict";La();$r();ar();Ut();si();r2=class{constructor(){this.nodes=[];this.levels=new Map;this.outerNodes=[];this.classes=new Map;this.setAccTitle=Lr;this.getAccTitle=Or;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getAccDescription=Br;this.setAccDescription=Pr}static{o(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let e=gr,r=Zt();return Pn({...e.treemap,...r.treemap??{}})}addNode(e,r){this.nodes.push(e),this.levels.set(e,r),r===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,r){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},i=r.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");i&&i.forEach(a=>{ub(a)&&(n?.textStyles?n.textStyles.push(a):n.textStyles=[a]),n?.styles?n.styles.push(a):n.styles=[a]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){_r(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}}});function F6e(t){if(!t.length)return[];let e=[],r=[];return t.forEach(n=>{let i={name:n.name,children:n.type==="Leaf"?void 0:[]};for(i.classSelector=n?.classSelector,n?.cssCompiledStyles&&(i.cssCompiledStyles=n.cssCompiledStyles),n.type==="Leaf"&&n.value!==void 0&&(i.value=n.value);r.length>0&&r[r.length-1].level>=n.level;)r.pop();if(r.length===0)e.push(i);else{let a=r[r.length-1].node;a.children?a.children.push(i):a.children=[i]}n.type!=="Leaf"&&r.push({node:i,level:n.level})}),e}var $6e=O(()=>{"use strict";o(F6e,"buildHierarchy")});var M0t,I0t,nH,z6e=O(()=>{"use strict";up();xt();Vm();$6e();rH();M0t=o((t,e)=>{ql(t,e);let r=[];for(let a of t.TreemapRows??[])a.$type==="ClassDefStatement"&&e.addClass(a.className??"",a.styleText??"");for(let a of t.TreemapRows??[]){let s=a.item;if(!s)continue;let l=a.indent?parseInt(a.indent):0,u=I0t(s),h=s.classSelector?e.getStylesForClass(s.classSelector):[],f=h.length>0?h:void 0,d={level:l,name:u,type:s.$type,value:s.value,classSelector:s.classSelector,cssCompiledStyles:f};r.push(d)}let n=F6e(r),i=o((a,s)=>{for(let l of a)e.addNode(l,s),l.children&&l.children.length>0&&i(l.children,s+1)},"addNodesRecursively");i(n,0)},"populate"),I0t=o(t=>t.name?String(t.name):"","getItemName"),nH={parser:{yy:void 0},parse:o(async t=>{try{let r=await Us("treemap",t);K.debug("Treemap AST:",r);let n=nH.parser?.yy;if(!(n instanceof r2))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");M0t(r,n)}catch(e){throw K.error("Error parsing treemap:",e),e}},"parse")}});var O0t,n2,M3,P0t,B0t,G6e,V6e=O(()=>{"use strict";Ul();Ld();Ti();Ar();Ut();$r();xt();O0t=10,n2=10,M3=25,P0t=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),s=a.padding??O0t,l=i.getDiagramTitle(),u=i.getRoot(),{themeVariables:h}=Zt();if(!u)return;let f=l?30:0,d=Ii(e),p=a.nodeWidth?a.nodeWidth*n2:960,m=a.nodeHeight?a.nodeHeight*n2:500,g=p,y=m+f;d.attr("viewBox",`0 0 ${g} ${y}`),Zr(d,y,g,a.useMaxWidth);let v;try{let D=a.valueFormat||",";if(D==="$0,0")v=o(M=>"$"+tu(",")(M),"valueFormat");else if(D.startsWith("$")&&D.includes(",")){let M=/\.\d+/.exec(D),R=M?M[0]:"";v=o(P=>"$"+tu(","+R)(P),"valueFormat")}else if(D.startsWith("$")){let M=D.substring(1);v=o(R=>"$"+tu(M||"")(R),"valueFormat")}else v=tu(D)}catch(D){K.error("Error creating format function:",D),v=tu(",")}let x=Fo().range(["transparent",h.cScale0,h.cScale1,h.cScale2,h.cScale3,h.cScale4,h.cScale5,h.cScale6,h.cScale7,h.cScale8,h.cScale9,h.cScale10,h.cScale11]),b=Fo().range(["transparent",h.cScalePeer0,h.cScalePeer1,h.cScalePeer2,h.cScalePeer3,h.cScalePeer4,h.cScalePeer5,h.cScalePeer6,h.cScalePeer7,h.cScalePeer8,h.cScalePeer9,h.cScalePeer10,h.cScalePeer11]),T=Fo().range([h.cScaleLabel0,h.cScaleLabel1,h.cScaleLabel2,h.cScaleLabel3,h.cScaleLabel4,h.cScaleLabel5,h.cScaleLabel6,h.cScaleLabel7,h.cScaleLabel8,h.cScaleLabel9,h.cScaleLabel10,h.cScaleLabel11]);l&&d.append("text").attr("x",g/2).attr("y",f/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(l);let E=d.append("g").attr("transform",`translate(0, ${f})`).attr("class","treemapContainer"),w=Mg(u).sum(D=>D.value??0).sort((D,M)=>(M.value??0)-(D.value??0)),S=_5().size([p,m]).paddingTop(D=>D.children&&D.children.length>0?M3+n2:0).paddingInner(s).paddingLeft(D=>D.children&&D.children.length>0?n2:0).paddingRight(D=>D.children&&D.children.length>0?n2:0).paddingBottom(D=>D.children&&D.children.length>0?n2:0).round(!0)(w),A=S.descendants().filter(D=>D.children&&D.children.length>0),L=E.selectAll(".treemapSection").data(A).enter().append("g").attr("class","treemapSection").attr("transform",D=>`translate(${D.x0},${D.y0})`);L.append("rect").attr("width",D=>D.x1-D.x0).attr("height",M3).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",D=>D.depth===0?"display: none;":""),L.append("clipPath").attr("id",(D,M)=>`clip-section-${e}-${M}`).append("rect").attr("width",D=>Math.max(0,D.x1-D.x0-12)).attr("height",M3),L.append("rect").attr("width",D=>D.x1-D.x0).attr("height",D=>D.y1-D.y0).attr("class",(D,M)=>`treemapSection section${M}`).attr("fill",D=>x(D.data.name)).attr("fill-opacity",.6).attr("stroke",D=>b(D.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",D=>{if(D.depth===0)return"display: none;";let M=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M.nodeStyles+";"+M.borderStyles.join(";")}),L.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",M3/2).attr("dominant-baseline","middle").text(D=>D.depth===0?"":D.data.name).attr("font-weight","bold").attr("style",D=>{if(D.depth===0)return"display: none;";let M="dominant-baseline: middle; font-size: 12px; fill:"+T(D.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",R=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M+R.labelStyles.replace("color:","fill:")}).each(function(D){if(D.depth===0)return;let M=je(this),R=D.data.name;M.text(R);let P=D.x1-D.x0,B=6,F;a.showValues!==!1&&D.value?F=P-10-30-10-B:F=P-B-6;let $=Math.max(15,F),V=M.node();if(V.getComputedTextLength()>$){let H=R;for(;H.length>0;){if(H=R.substring(0,H.length-1),H.length===0){M.text("..."),V.getComputedTextLength()>$&&M.text("");break}if(M.text(H+"..."),V.getComputedTextLength()<=$)break}}}),a.showValues!==!1&&L.append("text").attr("class","treemapSectionValue").attr("x",D=>D.x1-D.x0-10).attr("y",M3/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(D=>D.value?v(D.value):"").attr("font-style","italic").attr("style",D=>{if(D.depth===0)return"display: none;";let M="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+T(D.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",R=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M+R.labelStyles.replace("color:","fill:")});let I=S.leaves(),N=E.selectAll(".treemapLeafGroup").data(I).enter().append("g").attr("class",(D,M)=>`treemapNode treemapLeafGroup leaf${M}${D.data.classSelector?` ${D.data.classSelector}`:""}x`).attr("transform",D=>`translate(${D.x0},${D.y0})`);N.append("rect").attr("width",D=>D.x1-D.x0).attr("height",D=>D.y1-D.y0).attr("class","treemapLeaf").attr("fill",D=>D.parent?x(D.parent.data.name):x(D.data.name)).attr("style",D=>Ze({cssCompiledStyles:D.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",D=>D.parent?x(D.parent.data.name):x(D.data.name)).attr("stroke-width",3),N.append("clipPath").attr("id",(D,M)=>`clip-${e}-${M}`).append("rect").attr("width",D=>Math.max(0,D.x1-D.x0-4)).attr("height",D=>Math.max(0,D.y1-D.y0-4)),N.append("text").attr("class","treemapLabel").attr("x",D=>(D.x1-D.x0)/2).attr("y",D=>(D.y1-D.y0)/2).attr("style",D=>{let M="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+T(D.data.name)+";",R=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M+R.labelStyles.replace("color:","fill:")}).attr("clip-path",(D,M)=>`url(#clip-${e}-${M})`).text(D=>D.data.name).each(function(D){let M=je(this),R=D.x1-D.x0,P=D.y1-D.y0,B=M.node(),F=4,G=R-2*F,$=P-2*F;if(G<10||$<10){M.style("display","none");return}let V=parseInt(M.style("font-size"),10),X=8,Q=28,H=.6,ie=6,Y=2;for(;B.getComputedTextLength()>G&&V>X;)V--,M.style("font-size",`${V}px`);let le=Math.max(ie,Math.min(Q,Math.round(V*H))),ee=V+Y+le;for(;ee>$&&V>X&&(V--,le=Math.max(ie,Math.min(Q,Math.round(V*H))),!(le$;M.style("font-size",`${V}px`),(B.getComputedTextLength()>G||V(M.x1-M.x0)/2).attr("y",function(M){return(M.y1-M.y0)/2}).attr("style",M=>{let R="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+T(M.data.name)+";",P=Ze({cssCompiledStyles:M.data.cssCompiledStyles});return R+P.labelStyles.replace("color:","fill:")}).attr("clip-path",(M,R)=>`url(#clip-${e}-${R})`).text(M=>M.value?v(M.value):"").each(function(M){let R=je(this),P=this.parentNode;if(!P){R.style("display","none");return}let B=je(P).select(".treemapLabel");if(B.empty()||B.style("display")==="none"){R.style("display","none");return}let F=parseFloat(B.style("font-size")),G=28,$=.6,V=6,X=2,Q=Math.max(V,Math.min(G,Math.round(F*$)));R.style("font-size",`${Q}px`);let ie=(M.y1-M.y0)/2+F/2+X;R.attr("y",ie);let Y=M.x1-M.x0,J=M.y1-M.y0-4,te=Y-8;R.node().getComputedTextLength()>te||ie+Q>J||Q{"use strict";ar();F0t={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},$0t=o(({treemap:t}={})=>{let e=Pn(F0t,t);return` + .treemapNode.section { + stroke: ${e.sectionStrokeColor}; + stroke-width: ${e.sectionStrokeWidth}; + fill: ${e.sectionFillColor}; + } + .treemapNode.leaf { + stroke: ${e.leafStrokeColor}; + stroke-width: ${e.leafStrokeWidth}; + fill: ${e.leafFillColor}; + } + .treemapLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .treemapValue { + fill: ${e.valueColor}; + font-size: ${e.valueFontSize}; + } + .treemapTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + `},"getStyles"),q6e=$0t});var W6e={};vr(W6e,{diagram:()=>z0t});var z0t,H6e=O(()=>{"use strict";rH();z6e();V6e();U6e();z0t={parser:nH,get db(){return new r2},renderer:G6e,styles:q6e}});var Cmt={};vr(Cmt,{default:()=>Smt});Xc();vD();Fp();var _Pe=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),DPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Jre(),Zre));return{id:"c4",diagram:t}},"loader"),RPe={id:"c4",detector:_Pe,loader:DPe},ene=RPe;var Vge="flowchart",Zet=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),Jet=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(EC(),kC));return{id:Vge,diagram:t}},"loader"),ett={id:Vge,detector:Zet,loader:Jet},qge=ett;var Uge="flowchart-v2",ttt=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),rtt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(EC(),kC));return{id:Uge,diagram:t}},"loader"),ntt={id:Uge,detector:ttt,loader:rtt},Wge=ntt;var ltt=o(t=>/^\s*erDiagram/.test(t),"detector"),ctt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Jge(),Zge));return{id:"er",diagram:t}},"loader"),utt={id:"er",detector:ltt,loader:ctt},e1e=utt;var D4e="gitGraph",Nst=o(t=>/^\s*gitGraph/.test(t),"detector"),Mst=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_4e(),A4e));return{id:D4e,diagram:t}},"loader"),Ist={id:D4e,detector:Nst,loader:Mst},R4e=Ist;var l3e="gantt",Tot=o(t=>/^\s*gantt/.test(t),"detector"),wot=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(o3e(),s3e));return{id:l3e,diagram:t}},"loader"),kot={id:l3e,detector:Tot,loader:wot},c3e=kot;var v3e="info",_ot=o(t=>/^\s*info/.test(t),"detector"),Dot=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(y3e(),g3e));return{id:v3e,diagram:t}},"loader"),x3e={id:v3e,detector:_ot,loader:Dot};var Vot=o(t=>/^\s*pie/.test(t),"detector"),qot=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_3e(),A3e));return{id:"pie",diagram:t}},"loader"),D3e={id:"pie",detector:Vot,loader:qot};var V3e="quadrantChart",olt=o(t=>/^\s*quadrantChart/.test(t),"detector"),llt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(G3e(),z3e));return{id:V3e,diagram:t}},"loader"),clt={id:V3e,detector:olt,loader:llt},q3e=clt;var gwe="xychart",Clt=o(t=>/^\s*xychart(-beta)?/.test(t),"detector"),Alt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(mwe(),pwe));return{id:gwe,diagram:t}},"loader"),_lt={id:gwe,detector:Clt,loader:Alt},ywe=_lt;var Cwe="requirement",Nlt=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),Mlt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Swe(),Ewe));return{id:Cwe,diagram:t}},"loader"),Ilt={id:Cwe,detector:Nlt,loader:Mlt},Awe=Ilt;var Wwe="sequence",Rct=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),Lct=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Uwe(),qwe));return{id:Wwe,diagram:t}},"loader"),Nct={id:Wwe,detector:Rct,loader:Lct},Hwe=Nct;var Zwe="class",Fct=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),$ct=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Qwe(),Kwe));return{id:Zwe,diagram:t}},"loader"),zct={id:Zwe,detector:Fct,loader:$ct},Jwe=zct;var r5e="classDiagram",Vct=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),qct=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(t5e(),e5e));return{id:r5e,diagram:t}},"loader"),Uct={id:r5e,detector:Vct,loader:qct},n5e=Uct;var O5e="state",gut=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),yut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(I5e(),M5e));return{id:O5e,diagram:t}},"loader"),vut={id:O5e,detector:gut,loader:yut},P5e=vut;var $5e="stateDiagram",but=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),Tut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(F5e(),B5e));return{id:$5e,diagram:t}},"loader"),wut={id:$5e,detector:but,loader:Tut},z5e=wut;var rke="journey",qut=o(t=>/^\s*journey/.test(t),"detector"),Uut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(tke(),eke));return{id:rke,diagram:t}},"loader"),Wut={id:rke,detector:qut,loader:Uut},nke=Wut;xt();Ul();Ti();var Hut=o((t,e,r)=>{K.debug(`rendering svg for syntax error +`);let n=Ii(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Zr(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),BU={draw:Hut},ike=BU;var Yut={db:{},renderer:BU,parser:{parse:o(()=>{},"parse")}},ake=Yut;var ske="flowchart-elk",jut=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),Xut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(EC(),kC));return{id:ske,diagram:t}},"loader"),Kut={id:ske,detector:jut,loader:Xut},oke=Kut;var Mke="timeline",mht=o(t=>/^\s*timeline/.test(t),"detector"),ght=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Nke(),Lke));return{id:Mke,diagram:t}},"loader"),yht={id:Mke,detector:mht,loader:ght},Ike=yht;var Zke="mindmap",Sht=o(t=>/^\s*mindmap/.test(t),"detector"),Cht=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Qke(),Kke));return{id:Zke,diagram:t}},"loader"),Aht={id:Zke,detector:Sht,loader:Cht},Jke=Aht;var hEe="kanban",qht=o(t=>/^\s*kanban/.test(t),"detector"),Uht=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(uEe(),cEe));return{id:hEe,diagram:t}},"loader"),Wht={id:hEe,detector:qht,loader:Uht},fEe=Wht;var YEe="sankey",pft=o(t=>/^\s*sankey(-beta)?/.test(t),"detector"),mft=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(HEe(),WEe));return{id:YEe,diagram:t}},"loader"),gft={id:YEe,detector:pft,loader:mft},jEe=gft;var rSe="packet",Sft=o(t=>/^\s*packet(-beta)?/.test(t),"detector"),Cft=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(tSe(),eSe));return{id:rSe,diagram:t}},"loader"),nSe={id:rSe,detector:Sft,loader:Cft};var pSe="radar",jft=o(t=>/^\s*radar-beta/.test(t),"detector"),Xft=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(dSe(),fSe));return{id:pSe,diagram:t}},"loader"),mSe={id:pSe,detector:jft,loader:Xft};var vCe="block",ppt=o(t=>/^\s*block(-beta)?/.test(t),"detector"),mpt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(yCe(),gCe));return{id:vCe,diagram:t}},"loader"),gpt={id:vCe,detector:ppt,loader:mpt},xCe=gpt;var GCe="architecture",Lpt=o(t=>/^\s*architecture/.test(t),"detector"),Npt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(zCe(),$Ce));return{id:GCe,diagram:t}},"loader"),Mpt={id:GCe,detector:Lpt,loader:Npt},VCe=Mpt;var a6e="ishikawa",Hpt=o(t=>/^\s*ishikawa(-beta)?\b/i.test(t),"detector"),Ypt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(i6e(),n6e));return{id:a6e,diagram:t}},"loader"),s6e={id:a6e,detector:Hpt,loader:Ypt};var P6e="venn",R0t=o(t=>/^\s*venn-beta/.test(t),"detector"),L0t=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(O6e(),I6e));return{id:P6e,diagram:t}},"loader"),N0t={id:P6e,detector:R0t,loader:L0t},B6e=N0t;Fp();jt();var Y6e="treemap",G0t=o(t=>/^\s*treemap/.test(t),"detector"),V0t=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(H6e(),W6e));return{id:Y6e,diagram:t}},"loader"),j6e={id:Y6e,detector:G0t,loader:V0t};var X6e=!1,i2=o(()=>{X6e||(X6e=!0,$p("error",ake,t=>t.toLowerCase().trim()==="error"),$p("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),B2(oke,Jke,VCe),B2(ene,fEe,n5e,Jwe,e1e,c3e,x3e,D3e,Awe,Hwe,Wge,qge,Ike,R4e,z5e,P5e,nke,q3e,jEe,nSe,ywe,xCe,mSe,s6e,j6e,B6e))},"addDiagrams");xt();Fp();jt();var K6e=o(async()=>{K.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(uh).map(async([r,{detector:n,loader:i}])=>{if(i)try{V2(r)}catch{try{let{diagram:a,id:s}=await i();$p(s,a,n)}catch(a){throw K.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete uh[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){K.error(`Failed to load ${e.length} external diagrams`);for(let r of e)K.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");xt();Ar();var __="comm",D_="rule",R_="decl";var Q6e="@import";var Z6e="@namespace",J6e="@keyframes";var eAe="@layer";var iH=Math.abs,I3=String.fromCharCode;function L_(t){return t.trim()}o(L_,"trim");function O3(t,e,r){return t.replace(e,r)}o(O3,"replace");function tAe(t,e,r){return t.indexOf(e,r)}o(tAe,"indexof");function wp(t,e){return t.charCodeAt(e)|0}o(wp,"charat");function kp(t,e,r){return t.slice(e,r)}o(kp,"substr");function ol(t){return t.length}o(ol,"strlen");function rAe(t){return t.length}o(rAe,"sizeof");function a2(t,e){return e.push(t),t}o(a2,"append");var N_=1,s2=1,nAe=0,jl=0,Xi=0,l2="";function M_(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:N_,column:s2,length:s,return:"",siblings:l}}o(M_,"node");function iAe(){return Xi}o(iAe,"char");function aAe(){return Xi=jl>0?wp(l2,--jl):0,s2--,Xi===10&&(s2=1,N_--),Xi}o(aAe,"prev");function Xl(){return Xi=jl2||o2(Xi)>3?"":" "}o(lAe,"whitespace");function cAe(t,e){for(;--e&&Xl()&&!(Xi<48||Xi>102||Xi>57&&Xi<65||Xi>70&&Xi<97););return I_(t,P3()+(e<6&&ff()==32&&Xl()==32))}o(cAe,"escaping");function aH(t){for(;Xl();)switch(Xi){case t:return jl;case 34:case 39:t!==34&&t!==39&&aH(Xi);break;case 40:t===41&&aH(t);break;case 92:Xl();break}return jl}o(aH,"delimiter");function uAe(t,e){for(;Xl()&&t+Xi!==57;)if(t+Xi===84&&ff()===47)break;return"/*"+I_(e,jl-1)+"*"+I3(t===47?t:Xl())}o(uAe,"commenter");function hAe(t){for(;!o2(ff());)Xl();return I_(t,jl)}o(hAe,"identifier");function pAe(t){return oAe(P_("",null,null,null,[""],t=sAe(t),0,[0],t))}o(pAe,"compile");function P_(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,T="",E=i,w=a,k=n,S=T;v;)switch(g=b,b=Xl()){case 40:if(g!=108&&wp(S,d-1)==58){tAe(S+=O3(O_(b),"&","&\f"),"&\f",iH(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:S+=O_(b);break;case 9:case 10:case 13:case 32:S+=lAe(g);break;case 92:S+=cAe(P3()-1,7);continue;case 47:switch(ff()){case 42:case 47:a2(q0t(uAe(Xl(),P3()),e,r,u),u),(o2(g||1)==5||o2(ff()||1)==5)&&ol(S)&&kp(S,-1,void 0)!==" "&&(S+=" ");break;default:S+="/"}break;case 123*y:l[h++]=ol(S)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(S=O3(S,/\f/g,"")),m>0&&(ol(S)-d||y===0&&g===47)&&a2(m>32?dAe(S+";",n,r,d-1,u):dAe(O3(S," ","")+";",n,r,d-2,u),u);break;case 59:S+=";";default:if(a2(k=fAe(S,e,r,h,f,i,l,T,E=[],w=[],d,a),a),b===123)if(f===0)P_(S,e,k,k,E,a,d,l,w);else{switch(p){case 99:if(wp(S,3)===110)break;case 108:if(wp(S,2)===97)break;default:f=0;case 100:case 109:case 115:}f?P_(t,k,k,n&&a2(fAe(t,k,k,0,0,i,l,T,i,E=[],d,w),w),i,w,d,l,n?E:w):P_(S,k,k,k,[""],w,0,l,w)}}h=f=m=0,y=x=1,T=S="",d=s;break;case 58:d=1+ol(S),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&aAe()==125)continue}switch(S+=I3(b),b*y){case 38:x=f>0?1:(S+="\f",-1);break;case 44:l[h++]=(ol(S)-1)*x,x=1;break;case 64:ff()===45&&(S+=O_(Xl())),p=ff(),f=d=ol(T=S+=hAe(P3())),b++;break;case 45:g===45&&ol(S)==2&&(y=0)}}return a}o(P_,"parse");function fAe(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=rAe(m),y=0,v=0,x=0;y0?m[b]+" "+T:O3(T,/&\f/g,m[b])))&&(u[x++]=E);return M_(t,e,r,i===0?D_:l,u,h,f,d)}o(fAe,"ruleset");function q0t(t,e,r,n){return M_(t,e,r,__,I3(iAe()),kp(t,2,-2),0,n)}o(q0t,"comment");function dAe(t,e,r,n,i){return M_(t,e,r,R_,kp(t,0,n),kp(t,n+1,-1),n,i)}o(dAe,"declaration");function B_(t,e){for(var r="",n=0;n{vAe.forEach(t=>{t()}),vAe=[]},"attachFunctions");xt();var bAe=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");Ow();ib();function TAe(t){let e=t.match(Iw);if(!e)return{text:t,metadata:{}};let r=Kf(e[1],{schema:Xf})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}o(TAe,"extractFrontMatter");ar();var W0t=o(t=>t.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),H0t=o(t=>{let{text:e,metadata:r}=TAe(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Y0t=o(t=>{let e=Xt.detectInit(t)??{},r=Xt.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:Gre(t),directive:e}},"processDirectives");function sH(t){let e=W0t(t),r=H0t(e),n=Y0t(r.text),i=Pn(r.config,n.directive);return t=bAe(n.text),{code:t,title:r.title,config:i}}o(sH,"preprocessDiagram");wD();Q3();ar();function wAe(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(wAe,"toBase64");var j0t=5e4,X0t="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",K0t="sandbox",Q0t="loose",Z0t="http://www.w3.org/2000/svg",J0t="http://www.w3.org/1999/xlink",emt="http://www.w3.org/1999/xhtml",tmt="100%",rmt="100%",nmt="border:0;margin:0;",imt="margin:0",amt="allow-top-navigation-by-user-activation allow-popups",smt='The "iframe" tag is not supported by your browser.',omt=["foreignobject"],lmt=["dominant-baseline"];function CAe(t){let e=sH(t);return x2(),bY(e.config??{}),e}o(CAe,"processAndSetConfigs");async function cmt(t,e){i2();try{let{code:r,config:n}=CAe(t);return{diagramType:(await AAe(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(cmt,"parse");var kAe=o((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),umt=o((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=Sr(t)?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{Er(l.styles)||s.forEach(u=>{r+=kAe(l.id,u,l.styles)}),Er(l.textStyles)||(r+=kAe(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),hmt=o((t,e,r,n)=>{let i=umt(t,r),a=CX(e,i,t.themeVariables);return B_(pAe(`${n}{${a}}`),mAe)},"createUserStyles"),fmt=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=ao(n),n=n.replace(/
    /g,"
    "),n},"cleanUpSvgCode"),dmt=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":rmt,n=wAe(`${t}`);return``},"putIntoIFrame"),EAe=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Z0t);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function SAe(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(SAe,"sandboxedIframe");var pmt=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),mmt=o(async function(t,e,r){i2();let n=CAe(e);e=n.code;let i=Zt();K.debug(i),e.length>(i?.maxTextSize??j0t)&&(e=X0t);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let _=je(p?l:h).node();_&&"remove"in _&&_.remove()},"removeTempElements"),d=je("body"),p=i.securityLevel===K0t,m=i.securityLevel===Q0t,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let C=SAe(je(r),s);d=je(C.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=je(r);EAe(d,t,u,`font-family: ${g}`,J0t)}else{if(pmt(document,t,u,s),p){let C=SAe(je("body"),s);d=je(C.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=je("body");EAe(d,t,u)}let y,v;try{y=await c2.fromText(e,{title:n.title})}catch(C){if(i.suppressErrorRendering)throw f(),C;y=await c2.fromText("error"),v=C}let x=d.select(h).node(),b=y.type,T=x.firstChild,E=T.firstChild,w=y.renderer.getClasses?.(e,y),k=hmt(i,b,w,a),S=document.createElement("style");S.innerHTML=k,T.insertBefore(S,E);try{await y.renderer.draw(e,t,"11.13.0",y)}catch(C){throw i.suppressErrorRendering?f():ike.draw(e,t,"11.13.0"),C}let A=d.select(`${h} svg`),L=y.db.getAccTitle?.(),I=y.db.getAccDescription?.();ymt(b,A,L,I),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",emt);let N=d.select(h).node().innerHTML;if(K.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),N=fmt(N,p,Xs(i.arrowMarkerAbsolute)),p){let C=d.select(h+" svg").node();N=dmt(N,C)}else m||(N=fl.sanitize(N,{ADD_TAGS:omt,ADD_ATTR:lmt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(xAe(),v)throw v;return f(),{diagramType:b,svg:N,bindFunctions:y.db.bindFunctions}},"render");function gmt(t={}){let e=Vn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),yY(e),e?.theme&&e.theme in ul?e.themeVariables=ul[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=ul.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?m8(e):g8();h2(r.logLevel),i2()}o(gmt,"initialize");var AAe=o((t,e={})=>{let{code:r}=sH(t);return c2.fromText(r,e)},"getDiagramFromText");function ymt(t,e,r,n){gAe(e,t),yAe(e,r,n,e.attr("id"))}o(ymt,"addA11yInfo");var Ep=Object.freeze({render:mmt,parse:cmt,getDiagramFromText:AAe,initialize:gmt,getConfig:Zt,setConfig:ew,getSiteConfig:g8,updateSiteConfig:vY,reset:o(()=>{x2()},"reset"),globalReset:o(()=>{x2(vf)},"globalReset"),defaultConfig:vf});h2(Zt().logLevel);x2(Zt());Rd();ar();var vmt=o((t,e,r)=>{K.warn(t),ON(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),_Ae=o(async function(t={querySelector:".mermaid"}){try{await xmt(t)}catch(e){if(ON(e)&&K.error(e.str),df.parseError&&df.parseError(e),!t.suppressErrors)throw K.error("Use the suppressErrors option to suppress these errors"),e}},"run"),xmt=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Ep.getConfig();K.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");K.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(K.debug("Start On Load: "+n?.startOnLoad),Ep.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Xt.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){K.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=Mw(Xt.entityDecode(s)).trim().replace(//gi,"
    ");let f=Xt.detectInit(s);f&&K.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await NAe(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){vmt(d,l,df.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),DAe=o(function(t){Ep.initialize(t)},"initialize"),bmt=o(async function(t,e,r){K.warn("mermaid.init is deprecated. Please use run instead."),t&&DAe(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await _Ae(n)},"init"),Tmt=o(async(t,{lazyLoad:e=!0}={})=>{i2(),B2(...t),e===!1&&await K6e()},"registerExternalDiagrams"),RAe=o(function(){if(df.startOnLoad){let{startOnLoad:t}=Ep.getConfig();t&&df.run().catch(e=>K.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",RAe,!1)}var wmt=o(function(t){df.parseError=t},"setParseErrorHandler"),F_=[],oH=!1,LAe=o(async()=>{if(!oH){for(oH=!0;F_.length>0;){let t=F_.shift();if(t)try{await t()}catch(e){K.error("Error executing queue",e)}}oH=!1}},"executeQueue"),kmt=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Ep.parse(t,e).then(l=>{a(l),r(l)},l=>{K.error("Error parsing",l),df.parseError?.(l),s(l),n(l)})}),"performCall");F_.push(i),LAe().catch(n)}),"parse"),NAe=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Ep.render(t,e,r).then(u=>{s(u),n(u)},u=>{K.error("Error parsing",u),df.parseError?.(u),l(u),i(u)})}),"performCall");F_.push(a),LAe().catch(i)}),"render"),Emt=o(()=>Object.keys(uh).map(t=>({id:t})),"getRegisteredDiagramsMetadata"),df={startOnLoad:!0,mermaidAPI:Ep,parse:kmt,render:NAe,init:bmt,run:_Ae,registerExternalDiagrams:Tmt,registerLayoutLoaders:LB,initialize:DAe,parseError:void 0,contentLoaded:RAe,setParseErrorHandler:wmt,detectType:vg,registerIconPacks:Nw,getRegisteredDiagramsMetadata:Emt},Smt=df;return G3(Cmt);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis["mermaid"] = globalThis.__esbuild_esm_mermaid_nm["mermaid"].default; diff --git a/0.48/assets/images/favicon.png b/0.48/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/0.48/assets/javascripts/bundle.79ae519e.min.js b/0.48/assets/javascripts/bundle.79ae519e.min.js new file mode 100644 index 0000000..9b61663 --- /dev/null +++ b/0.48/assets/javascripts/bundle.79ae519e.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Zi=Object.create;var _r=Object.defineProperty;var ea=Object.getOwnPropertyDescriptor;var ta=Object.getOwnPropertyNames,Bt=Object.getOwnPropertySymbols,ra=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable;var ho=(e,t,r)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Ar.call(t,r)&&ho(e,r,t[r]);if(Bt)for(var r of Bt(t))bo.call(t,r)&&ho(e,r,t[r]);return e};var vo=(e,t)=>{var r={};for(var o in e)Ar.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Bt)for(var o of Bt(e))t.indexOf(o)<0&&bo.call(e,o)&&(r[o]=e[o]);return r};var Cr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var oa=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ta(t))!Ar.call(e,n)&&n!==r&&_r(e,n,{get:()=>t[n],enumerable:!(o=ea(t,n))||o.enumerable});return e};var $t=(e,t,r)=>(r=e!=null?Zi(ra(e)):{},oa(t||!e||!e.__esModule?_r(r,"default",{value:e,enumerable:!0}):r,e));var go=(e,t,r)=>new Promise((o,n)=>{var i=c=>{try{a(r.next(c))}catch(p){n(p)}},s=c=>{try{a(r.throw(c))}catch(p){n(p)}},a=c=>c.done?o(c.value):Promise.resolve(c.value).then(i,s);a((r=r.apply(e,t)).next())});var xo=Cr((kr,yo)=>{(function(e,t){typeof kr=="object"&&typeof yo!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(kr,(function(){"use strict";function e(r){var o=!0,n=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function c(k){var ut=k.type,je=k.tagName;return!!(je==="INPUT"&&s[ut]&&!k.readOnly||je==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function p(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(a(r.activeElement)&&p(r.activeElement),o=!0)}function u(k){o=!1}function d(k){a(k.target)&&(o||c(k.target))&&p(k.target)}function v(k){a(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function S(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",ee),document.addEventListener("mousedown",ee),document.addEventListener("mouseup",ee),document.addEventListener("pointermove",ee),document.addEventListener("pointerdown",ee),document.addEventListener("pointerup",ee),document.addEventListener("touchmove",ee),document.addEventListener("touchstart",ee),document.addEventListener("touchend",ee)}function re(){document.removeEventListener("mousemove",ee),document.removeEventListener("mousedown",ee),document.removeEventListener("mouseup",ee),document.removeEventListener("pointermove",ee),document.removeEventListener("pointerdown",ee),document.removeEventListener("pointerup",ee),document.removeEventListener("touchmove",ee),document.removeEventListener("touchstart",ee),document.removeEventListener("touchend",ee)}function ee(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,re())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",S,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",v,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)}))});var ro=Cr((jy,Rn)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var qa=/["'&<>]/;Rn.exports=Ka;function Ka(e){var t=""+e,r=qa.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Nt=="object"&&typeof io=="object"?io.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Nt=="object"?Nt.ClipboardJS=r():t.ClipboardJS=r()})(Nt,function(){return(function(){var e={686:(function(o,n,i){"use strict";i.d(n,{default:function(){return Xi}});var s=i(279),a=i.n(s),c=i(370),p=i.n(c),l=i(817),f=i.n(l);function u(q){try{return document.execCommand(q)}catch(C){return!1}}var d=function(C){var _=f()(C);return u("cut"),_},v=d;function S(q){var C=document.documentElement.getAttribute("dir")==="rtl",_=document.createElement("textarea");_.style.fontSize="12pt",_.style.border="0",_.style.padding="0",_.style.margin="0",_.style.position="absolute",_.style[C?"right":"left"]="-9999px";var D=window.pageYOffset||document.documentElement.scrollTop;return _.style.top="".concat(D,"px"),_.setAttribute("readonly",""),_.value=q,_}var X=function(C,_){var D=S(C);_.container.appendChild(D);var N=f()(D);return u("copy"),D.remove(),N},re=function(C){var _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},D="";return typeof C=="string"?D=X(C,_):C instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(C==null?void 0:C.type)?D=X(C.value,_):(D=f()(C),u("copy")),D},ee=re;function k(q){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(_){return typeof _}:k=function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},k(q)}var ut=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_=C.action,D=_===void 0?"copy":_,N=C.container,G=C.target,We=C.text;if(D!=="copy"&&D!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(G!==void 0)if(G&&k(G)==="object"&&G.nodeType===1){if(D==="copy"&&G.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(D==="cut"&&(G.hasAttribute("readonly")||G.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(We)return ee(We,{container:N});if(G)return D==="cut"?v(G):ee(G,{container:N})},je=ut;function R(q){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?R=function(_){return typeof _}:R=function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},R(q)}function se(q,C){if(!(q instanceof C))throw new TypeError("Cannot call a class as a function")}function ce(q,C){for(var _=0;_0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof N.action=="function"?N.action:this.defaultAction,this.target=typeof N.target=="function"?N.target:this.defaultTarget,this.text=typeof N.text=="function"?N.text:this.defaultText,this.container=R(N.container)==="object"?N.container:document.body}},{key:"listenClick",value:function(N){var G=this;this.listener=p()(N,"click",function(We){return G.onClick(We)})}},{key:"onClick",value:function(N){var G=N.delegateTarget||N.currentTarget,We=this.action(G)||"copy",Yt=je({action:We,container:this.container,target:this.target(G),text:this.text(G)});this.emit(Yt?"success":"error",{action:We,text:Yt,trigger:G,clearSelection:function(){G&&G.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(N){return Mr("action",N)}},{key:"defaultTarget",value:function(N){var G=Mr("target",N);if(G)return document.querySelector(G)}},{key:"defaultText",value:function(N){return Mr("text",N)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(N){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return ee(N,G)}},{key:"cut",value:function(N){return v(N)}},{key:"isSupported",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],G=typeof N=="string"?[N]:N,We=!!document.queryCommandSupported;return G.forEach(function(Yt){We=We&&!!document.queryCommandSupported(Yt)}),We}}]),_})(a()),Xi=Ji}),828:(function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==n;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}o.exports=s}),438:(function(o,n,i){var s=i(828);function a(l,f,u,d,v){var S=p.apply(this,arguments);return l.addEventListener(u,S,v),{destroy:function(){l.removeEventListener(u,S,v)}}}function c(l,f,u,d,v){return typeof l.addEventListener=="function"?a.apply(null,arguments):typeof u=="function"?a.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(S){return a(S,f,u,d,v)}))}function p(l,f,u,d){return function(v){v.delegateTarget=s(v.target,f),v.delegateTarget&&d.call(l,v)}}o.exports=c}),879:(function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}}),370:(function(o,n,i){var s=i(879),a=i(438);function c(u,d,v){if(!u&&!d&&!v)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(v))throw new TypeError("Third argument must be a Function");if(s.node(u))return p(u,d,v);if(s.nodeList(u))return l(u,d,v);if(s.string(u))return f(u,d,v);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function p(u,d,v){return u.addEventListener(d,v),{destroy:function(){u.removeEventListener(d,v)}}}function l(u,d,v){return Array.prototype.forEach.call(u,function(S){S.addEventListener(d,v)}),{destroy:function(){Array.prototype.forEach.call(u,function(S){S.removeEventListener(d,v)})}}}function f(u,d,v){return a(document.body,u,d,v)}o.exports=c}),817:(function(o){function n(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),p=document.createRange();p.selectNodeContents(i),c.removeAllRanges(),c.addRange(p),s=c.toString()}return s}o.exports=n}),279:(function(o){function n(){}n.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function p(){c.off(i,p),s.apply(a,arguments)}return p._=s,this.on(i,p,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,p=a.length;for(c;c0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||c(d,S)})},v&&(n[d]=v(n[d])))}function c(d,v){try{p(o[d](v))}catch(S){u(i[0][3],S)}}function p(d){d.value instanceof dt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){c("next",d)}function f(d){c("throw",d)}function u(d,v){d(v),i.shift(),i.length&&c(i[0][0],i[0][1])}}function To(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Oe=="function"?Oe(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),n(a,c,s.done,s.value)})}}function n(i,s,a,c){Promise.resolve(c).then(function(p){i({value:p,done:a})},s)}}function I(e){return typeof e=="function"}function yt(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Jt=yt(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Ze(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var qe=(function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Oe(s),c=a.next();!c.done;c=a.next()){var p=c.value;p.remove(this)}}catch(S){t={error:S}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(I(l))try{l()}catch(S){i=S instanceof Jt?S.errors:[S]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=Oe(f),d=u.next();!d.done;d=u.next()){var v=d.value;try{So(v)}catch(S){i=i!=null?i:[],S instanceof Jt?i=B(B([],K(i)),K(S.errors)):i.push(S)}}}catch(S){o={error:S}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new Jt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)So(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ze(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ze(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e})();var $r=qe.EMPTY;function Xt(e){return e instanceof qe||e&&"closed"in e&&I(e.remove)&&I(e.add)&&I(e.unsubscribe)}function So(e){I(e)?e():e.unsubscribe()}var De={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var xt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,s=n.isStopped,a=n.observers;return i||s?$r:(this.currentObservers=null,a.push(r),new qe(function(){o.currentObservers=null,Ze(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,s=o.isStopped;n?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,o){return new Ho(r,o)},t})(F);var Ho=(function(e){ie(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:$r},t})(T);var jr=(function(e){ie(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t})(T);var Rt={now:function(){return(Rt.delegate||Date).now()},delegate:void 0};var It=(function(e){ie(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=Rt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,s=o._infiniteTimeWindow,a=o._timestampProvider,c=o._windowTime;n||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,s=n._buffer,a=s.slice(),c=0;c0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t})(St);var Ro=(function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t})(Ot);var Dr=new Ro(Po);var Io=(function(e){ie(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=Tt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var s=r.actions;o!=null&&o===r._scheduled&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==o&&(Tt.cancelAnimationFrame(o),r._scheduled=void 0)},t})(St);var Fo=(function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o;r?o=r.id:(o=this._scheduled,this._scheduled=void 0);var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t})(Ot);var ye=new Fo(Io);var y=new F(function(e){return e.complete()});function tr(e){return e&&I(e.schedule)}function Vr(e){return e[e.length-1]}function pt(e){return I(Vr(e))?e.pop():void 0}function Fe(e){return tr(Vr(e))?e.pop():void 0}function rr(e,t){return typeof Vr(e)=="number"?e.pop():t}var Lt=(function(e){return e&&typeof e.length=="number"&&typeof e!="function"});function or(e){return I(e==null?void 0:e.then)}function nr(e){return I(e[wt])}function ir(e){return Symbol.asyncIterator&&I(e==null?void 0:e[Symbol.asyncIterator])}function ar(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function fa(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var sr=fa();function cr(e){return I(e==null?void 0:e[sr])}function pr(e){return wo(this,arguments,function(){var r,o,n,i;return Gt(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,dt(r.read())];case 3:return o=s.sent(),n=o.value,i=o.done,i?[4,dt(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,dt(n)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function lr(e){return I(e==null?void 0:e.getReader)}function U(e){if(e instanceof F)return e;if(e!=null){if(nr(e))return ua(e);if(Lt(e))return da(e);if(or(e))return ha(e);if(ir(e))return jo(e);if(cr(e))return ba(e);if(lr(e))return va(e)}throw ar(e)}function ua(e){return new F(function(t){var r=e[wt]();if(I(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function da(e){return new F(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?g(function(n,i){return e(n,i,o)}):be,Ee(1),r?Qe(t):tn(function(){return new fr}))}}function Yr(e){return e<=0?function(){return y}:E(function(t,r){var o=[];t.subscribe(w(r,function(n){o.push(n),e=2,!0))}function le(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new T}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(p){var l,f,u,d=0,v=!1,S=!1,X=function(){f==null||f.unsubscribe(),f=void 0},re=function(){X(),l=u=void 0,v=S=!1},ee=function(){var k=l;re(),k==null||k.unsubscribe()};return E(function(k,ut){d++,!S&&!v&&X();var je=u=u!=null?u:r();ut.add(function(){d--,d===0&&!S&&!v&&(f=Br(ee,c))}),je.subscribe(ut),!l&&d>0&&(l=new bt({next:function(R){return je.next(R)},error:function(R){S=!0,X(),f=Br(re,n,R),je.error(R)},complete:function(){v=!0,X(),f=Br(re,s),je.complete()}}),U(k).subscribe(l))})(p)}}function Br(e,t){for(var r=[],o=2;oe.next(document)),e}function M(e,t=document){return Array.from(t.querySelectorAll(e))}function j(e,t=document){let r=ue(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ue(e,t=document){return t.querySelector(e)||void 0}function Ne(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var Ra=L(h(document.body,"focusin"),h(document.body,"focusout")).pipe(Ae(1),Q(void 0),m(()=>Ne()||document.body),Z(1));function Ye(e){return Ra.pipe(m(t=>e.contains(t)),Y())}function it(e,t){return H(()=>L(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?jt(r=>He(+!r*t)):be,Q(e.matches(":hover"))))}function sn(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)sn(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)sn(o,n);return o}function br(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function _t(e){let t=x("script",{src:e});return H(()=>(document.head.appendChild(t),L(h(t,"load"),h(t,"error").pipe(b(()=>Nr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),A(()=>document.head.removeChild(t)),Ee(1))))}var cn=new T,Ia=H(()=>typeof ResizeObserver=="undefined"?_t("https://unpkg.com/resize-observer-polyfill"):$(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>cn.next(t)))),b(e=>L(tt,$(e)).pipe(A(()=>e.disconnect()))),Z(1));function de(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Le(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ia.pipe(O(r=>r.observe(t)),b(r=>cn.pipe(g(o=>o.target===t),A(()=>r.unobserve(t)))),m(()=>de(e)),Q(de(e)))}function At(e){return{width:e.scrollWidth,height:e.scrollHeight}}function vr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function pn(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Be(e){return{x:e.offsetLeft,y:e.offsetTop}}function ln(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function mn(e){return L(h(window,"load"),h(window,"resize")).pipe($e(0,ye),m(()=>Be(e)),Q(Be(e)))}function gr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ge(e){return L(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe($e(0,ye),m(()=>gr(e)),Q(gr(e)))}var fn=new T,Fa=H(()=>$(new IntersectionObserver(e=>{for(let t of e)fn.next(t)},{threshold:0}))).pipe(b(e=>L(tt,$(e)).pipe(A(()=>e.disconnect()))),Z(1));function mt(e){return Fa.pipe(O(t=>t.observe(e)),b(t=>fn.pipe(g(({target:r})=>r===e),A(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function un(e,t=16){return Ge(e).pipe(m(({y:r})=>{let o=de(e),n=At(e);return r>=n.height-o.height-t}),Y())}var yr={drawer:j("[data-md-toggle=drawer]"),search:j("[data-md-toggle=search]")};function dn(e){return yr[e].checked}function at(e,t){yr[e].checked!==t&&yr[e].click()}function Je(e){let t=yr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function ja(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ua(){return L(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function hn(){let e=h(window,"keydown").pipe(g(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:dn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),g(({mode:t,type:r})=>{if(t==="global"){let o=Ne();if(typeof o!="undefined")return!ja(o,r)}return!0}),le());return Ua().pipe(b(t=>t?y:e))}function we(){return new URL(location.href)}function st(e,t=!1){if(V("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function bn(){return new T}function vn(){return location.hash.slice(1)}function gn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Zr(e){return L(h(window,"hashchange"),e).pipe(m(vn),Q(vn()),g(t=>t.length>0),Z(1))}function yn(e){return Zr(e).pipe(m(t=>ue(`[id="${t}"]`)),g(t=>typeof t!="undefined"))}function Wt(e){let t=matchMedia(e);return ur(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function xn(){let e=matchMedia("print");return L(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function eo(e,t){return e.pipe(b(r=>r?t():y))}function to(e,t){return new F(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let s=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+s*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function ze(e,t){return to(e,t).pipe(b(r=>r.text()),m(r=>JSON.parse(r)),Z(1))}function xr(e,t){let r=new DOMParser;return to(e,t).pipe(b(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),Z(1))}function En(e,t){let r=new DOMParser;return to(e,t).pipe(b(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),Z(1))}function wn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Tn(){return L(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(wn),Q(wn()))}function Sn(){return{width:innerWidth,height:innerHeight}}function On(){return h(window,"resize",{passive:!0}).pipe(m(Sn),Q(Sn()))}function Ln(){return z([Tn(),On()]).pipe(m(([e,t])=>({offset:e,size:t})),Z(1))}function Er(e,{viewport$:t,header$:r}){let o=t.pipe(ne("size")),n=z([o,r]).pipe(m(()=>Be(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:p}])=>({offset:{x:s.x-c,y:s.y-p+i},size:a})))}function Wa(e){return h(e,"message",t=>t.data)}function Da(e){let t=new T;return t.subscribe(r=>e.postMessage(r)),t}function Mn(e,t=new Worker(e)){let r=Wa(t),o=Da(t),n=new T;n.subscribe(o);let i=o.pipe(oe(),ae(!0));return n.pipe(oe(),Ve(r.pipe(W(i))),le())}var Va=j("#__config"),Ct=JSON.parse(Va.textContent);Ct.base=`${new URL(Ct.base,we())}`;function Te(){return Ct}function V(e){return Ct.features.includes(e)}function Me(e,t){return typeof t!="undefined"?Ct.translations[e].replace("#",t.toString()):Ct.translations[e]}function Ce(e,t=document){return j(`[data-md-component=${e}]`,t)}function me(e,t=document){return M(`[data-md-component=${e}]`,t)}function Na(e){let t=j(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>j(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function _n(e){if(!V("announce.dismiss")||!e.childElementCount)return y;if(!e.hidden){let t=j(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return H(()=>{let t=new T;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),Na(e).pipe(O(r=>t.next(r)),A(()=>t.complete()),m(r=>P({ref:e},r)))})}function za(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function An(e,t){let r=new T;return r.subscribe(({hidden:o})=>{e.hidden=o}),za(e,t).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))}function Dt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wr(...e){return x("div",{class:"md-tooltip2",role:"dialog"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Cn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function kn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Dt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Dt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Hn(e){return x("button",{class:"md-code__button",title:Me("clipboard.copy"),"data-clipboard-target":`#${e} > code`,"data-md-type":"copy"})}function $n(){return x("button",{class:"md-code__button",title:"Toggle line selection","data-md-type":"select"})}function Pn(){return x("nav",{class:"md-code__nav"})}var In=$t(ro());function oo(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(c=>!e.terms[c]).reduce((c,p)=>[...c,x("del",null,(0,In.default)(p))," "],[]).slice(0,-1),i=Te(),s=new URL(e.location,i.base);V("search.highlight")&&s.searchParams.set("h",Object.entries(e.terms).filter(([,c])=>c).reduce((c,[p])=>`${c} ${p}`.trim(),""));let{tags:a}=Te();return x("a",{href:`${s}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(c=>{let p=a?c in a?`md-tag-icon md-tag--${a[c]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${p}`},c)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Me("search.result.term.missing"),": ",...n)))}function Fn(e){let t=e[0].score,r=[...e],o=Te(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),s=r.findIndex(l=>l.scoreoo(l,1)),...c.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,c.length>0&&c.length===1?Me("search.result.more.one"):Me("search.result.more.other",c.length))),...c.map(l=>oo(l,1)))]:[]];return x("li",{class:"md-search-result__item"},p)}function jn(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?br(r):r)))}function no(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function Un(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Qa(e){var o;let t=Te(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Wn(e,t){var o;let r=Te();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Me("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Qa)))}var Ya=0;function Ba(e,t=250){let r=z([Ye(e),it(e,t)]).pipe(m(([n,i])=>n||i),Y()),o=H(()=>pn(e)).pipe(J(Ge),gt(1),Pe(r),m(()=>ln(e)));return r.pipe(Re(n=>n),b(()=>z([r,o])),m(([n,i])=>({active:n,offset:i})),le())}function Vt(e,t,r=250){let{content$:o,viewport$:n}=t,i=`__tooltip2_${Ya++}`;return H(()=>{let s=new T,a=new jr(!1);s.pipe(oe(),ae(!1)).subscribe(a);let c=a.pipe(jt(l=>He(+!l*250,Dr)),Y(),b(l=>l?o:y),O(l=>l.id=i),le());z([s.pipe(m(({active:l})=>l)),c.pipe(b(l=>it(l,250)),Q(!1))]).pipe(m(l=>l.some(f=>f))).subscribe(a);let p=a.pipe(g(l=>l),te(c,n),m(([l,f,{size:u}])=>{let d=e.getBoundingClientRect(),v=d.width/2;if(f.role==="tooltip")return{x:v,y:8+d.height};if(d.y>=u.height/2){let{height:S}=de(f);return{x:v,y:-16-S}}else return{x:v,y:16+d.height}}));return z([c,s,p]).subscribe(([l,{offset:f},u])=>{l.style.setProperty("--md-tooltip-host-x",`${f.x}px`),l.style.setProperty("--md-tooltip-host-y",`${f.y}px`),l.style.setProperty("--md-tooltip-x",`${u.x}px`),l.style.setProperty("--md-tooltip-y",`${u.y}px`),l.classList.toggle("md-tooltip2--top",u.y<0),l.classList.toggle("md-tooltip2--bottom",u.y>=0)}),a.pipe(g(l=>l),te(c,(l,f)=>f),g(l=>l.role==="tooltip")).subscribe(l=>{let f=de(j(":scope > *",l));l.style.setProperty("--md-tooltip-width",`${f.width}px`),l.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(Y(),xe(ye),te(c)).subscribe(([l,f])=>{f.classList.toggle("md-tooltip2--active",l)}),z([a.pipe(g(l=>l)),c]).subscribe(([l,f])=>{f.role==="dialog"?(e.setAttribute("aria-controls",i),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",i)}),a.pipe(g(l=>!l)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),Ba(e,r).pipe(O(l=>s.next(l)),A(()=>s.complete()),m(l=>P({ref:e},l)))})}function Xe(e,{viewport$:t},r=document.body){return Vt(e,{content$:new F(o=>{let n=e.title,i=Cn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t},0)}function Ga(e,t){let r=H(()=>z([mn(e),Ge(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:s,height:a}=de(e);return{x:o-i.x+s/2,y:n-i.y+a/2}}));return Ye(e).pipe(b(o=>r.pipe(m(n=>({active:o,offset:n})),Ee(+!o||1/0))))}function Dn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return H(()=>{let i=new T,s=i.pipe(oe(),ae(!0));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),mt(e).pipe(W(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),L(i.pipe(g(({active:a})=>a)),i.pipe(Ae(250),g(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe($e(16,ye)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(gt(125,ye),g(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(s),g(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>{a.stopPropagation(),a.preventDefault()}),h(n,"mousedown").pipe(W(s),te(i)).subscribe(([a,{active:c}])=>{var p;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(p=Ne())==null||p.blur()}}),r.pipe(W(s),g(a=>a===o),nt(125)).subscribe(()=>e.focus()),Ga(e,t).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function Ja(e){let t=Te();if(e.tagName!=="CODE")return[e];let r=[".c",".c1",".cm"];if(t.annotate&&typeof t.annotate=="object"){let o=e.closest("[class|=language]");if(o)for(let n of Array.from(o.classList)){if(!n.startsWith("language-"))continue;let[,i]=n.split("-");i in t.annotate&&r.push(...t.annotate[i])}}return M(r.join(", "),e)}function Xa(e){let t=[];for(let r of Ja(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let p=i.splitText(s.index);i=p.splitText(a.length),t.push(p)}else{i.textContent=a,t.push(i);break}}}}return t}function Vn(e,t){t.append(...Array.from(e.childNodes))}function Tr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,s=new Map;for(let a of Xa(t)){let[,c]=a.textContent.match(/\((\d+)\)/);ue(`:scope > li:nth-child(${c})`,e)&&(s.set(c,kn(c,i)),a.replaceWith(s.get(c)))}return s.size===0?y:H(()=>{let a=new T,c=a.pipe(oe(),ae(!0)),p=[];for(let[l,f]of s)p.push([j(".md-typeset",f),j(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(c)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of p)l?Vn(f,u):Vn(u,f)}),L(...[...s].map(([,l])=>Dn(l,t,{target$:r}))).pipe(A(()=>a.complete()),le())})}function Nn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Nn(t)}}function zn(e,t){return H(()=>{let r=Nn(e);return typeof r!="undefined"?Tr(r,e,t):y})}var Kn=$t(ao());var Za=0,qn=L(h(window,"keydown").pipe(m(()=>!0)),L(h(window,"keyup"),h(window,"contextmenu")).pipe(m(()=>!1))).pipe(Q(!1),Z(1));function Qn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Qn(t)}}function es(e){return Le(e).pipe(m(({width:t})=>({scrollable:At(e).width>t})),ne("scrollable"))}function Yn(e,t){let{matches:r}=matchMedia("(hover)"),o=H(()=>{let n=new T,i=n.pipe(Yr(1));n.subscribe(({scrollable:d})=>{d&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let s=[],a=e.closest("pre"),c=a.closest("[id]"),p=c?c.id:Za++;a.id=`__code_${p}`;let l=[],f=e.closest(".highlight");if(f instanceof HTMLElement){let d=Qn(f);if(typeof d!="undefined"&&(f.classList.contains("annotate")||V("content.code.annotate"))){let v=Tr(d,e,t);l.push(Le(f).pipe(W(i),m(({width:S,height:X})=>S&&X),Y(),b(S=>S?v:y)))}}let u=M(":scope > span[id]",e);if(u.length&&(e.classList.add("md-code__content"),e.closest(".select")||V("content.code.select")&&!e.closest(".no-select"))){let d=+u[0].id.split("-").pop(),v=$n();s.push(v),V("content.tooltips")&&l.push(Xe(v,{viewport$}));let S=h(v,"click").pipe(Ut(R=>!R,!1),O(()=>v.blur()),le());S.subscribe(R=>{v.classList.toggle("md-code__button--active",R)});let X=fe(u).pipe(J(R=>it(R).pipe(m(se=>[R,se]))));S.pipe(b(R=>R?X:y)).subscribe(([R,se])=>{let ce=ue(".hll.select",R);if(ce&&!se)ce.replaceWith(...Array.from(ce.childNodes));else if(!ce&&se){let he=document.createElement("span");he.className="hll select",he.append(...Array.from(R.childNodes).slice(1)),R.append(he)}});let re=fe(u).pipe(J(R=>h(R,"mousedown").pipe(O(se=>se.preventDefault()),m(()=>R)))),ee=S.pipe(b(R=>R?re:y),te(qn),m(([R,se])=>{var he;let ce=u.indexOf(R)+d;if(se===!1)return[ce,ce];{let Se=M(".hll",e).map(Ue=>u.indexOf(Ue.parentElement)+d);return(he=window.getSelection())==null||he.removeAllRanges(),[Math.min(ce,...Se),Math.max(ce,...Se)]}})),k=Zr(y).pipe(g(R=>R.startsWith(`__codelineno-${p}-`)));k.subscribe(R=>{let[,,se]=R.split("-"),ce=se.split(":").map(Se=>+Se-d+1);ce.length===1&&ce.push(ce[0]);for(let Se of M(".hll:not(.select)",e))Se.replaceWith(...Array.from(Se.childNodes));let he=u.slice(ce[0]-1,ce[1]);for(let Se of he){let Ue=document.createElement("span");Ue.className="hll",Ue.append(...Array.from(Se.childNodes).slice(1)),Se.append(Ue)}}),k.pipe(Ee(1),xe(pe)).subscribe(R=>{if(R.includes(":")){let se=document.getElementById(R.split(":")[0]);se&&setTimeout(()=>{let ce=se,he=-64;for(;ce!==document.body;)he+=ce.offsetTop,ce=ce.offsetParent;window.scrollTo({top:he})},1)}});let je=fe(M('a[href^="#__codelineno"]',f)).pipe(J(R=>h(R,"click").pipe(O(se=>se.preventDefault()),m(()=>R)))).pipe(W(i),te(qn),m(([R,se])=>{let he=+j(`[id="${R.hash.slice(1)}"]`).parentElement.id.split("-").pop();if(se===!1)return[he,he];{let Se=M(".hll",e).map(Ue=>+Ue.parentElement.id.split("-").pop());return[Math.min(he,...Se),Math.max(he,...Se)]}}));L(ee,je).subscribe(R=>{let se=`#__codelineno-${p}-`;R[0]===R[1]?se+=R[0]:se+=`${R[0]}:${R[1]}`,history.replaceState({},"",se),window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.origin+window.location.pathname+se,oldURL:window.location.href}))})}if(Kn.default.isSupported()&&(e.closest(".copy")||V("content.code.copy")&&!e.closest(".no-copy"))){let d=Hn(a.id);s.push(d),V("content.tooltips")&&l.push(Xe(d,{viewport$}))}if(s.length){let d=Pn();d.append(...s),a.insertBefore(d,e)}return es(e).pipe(O(d=>n.next(d)),A(()=>n.complete()),m(d=>P({ref:e},d)),Ve(L(...l).pipe(W(i))))});return V("content.lazy")?mt(e).pipe(g(n=>n),Ee(1),b(()=>o)):o}function ts(e,{target$:t,print$:r}){let o=!0;return L(t.pipe(m(n=>n.closest("details:not([open])")),g(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(g(n=>n||!o),O(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Bn(e,t){return H(()=>{let r=new T;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),ts(e,t).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}var Gn=0;function rs(e){let t=document.createElement("h3");t.innerHTML=e.innerHTML;let r=[t],o=e.nextElementSibling;for(;o&&!(o instanceof HTMLHeadingElement);)r.push(o),o=o.nextElementSibling;return r}function os(e,t){for(let r of M("[href], [src]",e))for(let o of["href","src"]){let n=r.getAttribute(o);if(n&&!/^(?:[a-z]+:)?\/\//i.test(n)){r[o]=new URL(r.getAttribute(o),t).toString();break}}for(let r of M("[name^=__], [for]",e))for(let o of["id","for","name"]){let n=r.getAttribute(o);n&&r.setAttribute(o,`${n}$preview_${Gn}`)}return Gn++,$(e)}function Jn(e,t){let{sitemap$:r}=t;if(!(e instanceof HTMLAnchorElement))return y;if(!(V("navigation.instant.preview")||e.hasAttribute("data-preview")))return y;e.removeAttribute("title");let o=z([Ye(e),it(e)]).pipe(m(([i,s])=>i||s),Y(),g(i=>i));return rt([r,o]).pipe(b(([i])=>{let s=new URL(e.href);return s.search=s.hash="",i.has(`${s}`)?$(s):y}),b(i=>xr(i).pipe(b(s=>os(s,i)))),b(i=>{let s=e.hash?`article [id="${e.hash.slice(1)}"]`:"article h1",a=ue(s,i);return typeof a=="undefined"?y:$(rs(a))})).pipe(b(i=>{let s=new F(a=>{let c=wr(...i);return a.next(c),document.body.append(c),()=>c.remove()});return Vt(e,P({content$:s},t))}))}var Xn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.flowchartTitleText{fill:var(--md-mermaid-label-fg-color)}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}.classDiagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs marker.marker.composition.class path,defs marker.marker.dependency.class path,defs marker.marker.extension.class path{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs marker.marker.aggregation.class path{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}.statediagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}[id^=entity] path,[id^=entity] rect{fill:var(--md-default-bg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs .marker.oneOrMore.er *,defs .marker.onlyOne.er *,defs .marker.zeroOrMore.er *,defs .marker.zeroOrOne.er *{stroke:var(--md-mermaid-edge-color)!important}text:not([class]):last-child{fill:var(--md-mermaid-label-fg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var so,is=0;function as(){return typeof mermaid=="undefined"||mermaid instanceof Element?_t("assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js"):$(void 0)}function Zn(e){return e.classList.remove("mermaid"),so||(so=as().pipe(O(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Xn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),Z(1))),so.subscribe(()=>go(null,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${is++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),s=r.attachShadow({mode:"closed"});s.innerHTML=n,e.replaceWith(r),i==null||i(s)})),so.pipe(m(()=>({ref:e})))}var ei=x("table");function ti(e){return e.replaceWith(ei),ei.replaceWith(Un(e)),$({ref:e})}function ss(e){let t=e.find(r=>r.checked)||e[0];return L(...e.map(r=>h(r,"change").pipe(m(()=>j(`label[for="${r.id}"]`))))).pipe(Q(j(`label[for="${t.id}"]`)),m(r=>({active:r})))}function ri(e,{viewport$:t,target$:r}){let o=j(".tabbed-labels",e),n=M(":scope > input",e),i=no("prev");e.append(i);let s=no("next");return e.append(s),H(()=>{let a=new T,c=a.pipe(oe(),ae(!0));z([a,Le(e),mt(e)]).pipe(W(c),$e(1,ye)).subscribe({next([{active:p},l]){let f=Be(p),{width:u}=de(p);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=gr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ge(o),Le(o)]).pipe(W(c)).subscribe(([p,l])=>{let f=At(o);i.hidden=p.x<16,s.hidden=p.x>f.width-l.width-16}),L(h(i,"click").pipe(m(()=>-1)),h(s,"click").pipe(m(()=>1))).pipe(W(c)).subscribe(p=>{let{width:l}=de(o);o.scrollBy({left:l*p,behavior:"smooth"})}),r.pipe(W(c),g(p=>n.includes(p))).subscribe(p=>p.click()),o.classList.add("tabbed-labels--linked");for(let p of n){let l=j(`label[for="${p.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(c),g(f=>!(f.metaKey||f.ctrlKey)),O(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return V("content.tabs.link")&&a.pipe(Ie(1),te(t)).subscribe(([{active:p},{offset:l}])=>{let f=p.innerText.trim();if(p.hasAttribute("data-md-switching"))p.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let v of M("[data-tabs]"))for(let S of M(":scope > input",v)){let X=j(`label[for="${S.id}"]`);if(X!==p&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),S.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),a.pipe(W(c)).subscribe(()=>{for(let p of M("audio, video",e))p.offsetWidth&&p.autoplay?p.play().catch(()=>{}):p.pause()}),ss(n).pipe(O(p=>a.next(p)),A(()=>a.complete()),m(p=>P({ref:e},p)))}).pipe(et(pe))}function oi(e,t){let{viewport$:r,target$:o,print$:n}=t;return L(...M(".annotate:not(.highlight)",e).map(i=>zn(i,{target$:o,print$:n})),...M("pre:not(.mermaid) > code",e).map(i=>Yn(i,{target$:o,print$:n})),...M("a",e).map(i=>Jn(i,t)),...M("pre.mermaid",e).map(i=>Zn(i)),...M("table:not([class])",e).map(i=>ti(i)),...M("details",e).map(i=>Bn(i,{target$:o,print$:n})),...M("[data-tabs]",e).map(i=>ri(i,{viewport$:r,target$:o})),...M("[title]:not([data-preview])",e).filter(()=>V("content.tooltips")).map(i=>Xe(i,{viewport$:r})),...M(".footnote-ref",e).filter(()=>V("content.footnote.tooltips")).map(i=>Vt(i,{content$:new F(s=>{let a=new URL(i.href).hash.slice(1),c=Array.from(document.getElementById(a).cloneNode(!0).children),p=wr(...c);return s.next(p),document.body.append(p),()=>p.remove()}),viewport$:r})))}function cs(e,{alert$:t}){return t.pipe(b(r=>L($(!0),$(!1).pipe(nt(2e3))).pipe(m(o=>({message:r,active:o})))))}function ni(e,t){let r=j(".md-typeset",e);return H(()=>{let o=new T;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),cs(e,t).pipe(O(n=>o.next(n)),A(()=>o.complete()),m(n=>P({ref:e},n)))})}var ps=0;function ls(e,t){document.body.append(e);let{width:r}=de(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=vr(t),n=typeof o!="undefined"?Ge(o):$({x:0,y:0}),i=L(Ye(t),it(t)).pipe(Y());return z([i,n]).pipe(m(([s,a])=>{let{x:c,y:p}=Be(t),l=de(t),f=t.closest("table");return f&&t.parentElement&&(c+=f.offsetLeft+t.parentElement.offsetLeft,p+=f.offsetTop+t.parentElement.offsetTop),{active:s,offset:{x:c-a.x+l.width/2-r/2,y:p-a.y+l.height+8}}}))}function ii(e){let t=e.title;if(!t.length)return y;let r=`__tooltip_${ps++}`,o=Dt(r,"inline"),n=j(".md-typeset",o);return n.innerHTML=t,H(()=>{let i=new T;return i.subscribe({next({offset:s}){o.style.setProperty("--md-tooltip-x",`${s.x}px`),o.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),L(i.pipe(g(({active:s})=>s)),i.pipe(Ae(250),g(({active:s})=>!s))).subscribe({next({active:s}){s?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe($e(16,ye)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(gt(125,ye),g(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?o.style.setProperty("--md-tooltip-0",`${-s}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),ls(o,e).pipe(O(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))}).pipe(et(pe))}function ms({viewport$:e}){if(!V("header.autohide"))return $(!1);let t=e.pipe(m(({offset:{y:n}})=>n),ot(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),Y()),o=Je("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),Y(),b(n=>n?r:$(!1)),Q(!1))}function ai(e,t){return H(()=>z([Le(e),ms(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),Y((r,o)=>r.height===o.height&&r.hidden===o.hidden),Z(1))}function si(e,{header$:t,main$:r}){return H(()=>{let o=new T,n=o.pipe(oe(),ae(!0));o.pipe(ne("active"),Pe(t)).subscribe(([{active:s},{hidden:a}])=>{e.classList.toggle("md-header--shadow",s&&!a),e.hidden=a});let i=fe(M("[title]",e)).pipe(g(()=>V("content.tooltips")),J(s=>ii(s)));return r.subscribe(o),t.pipe(W(n),m(s=>P({ref:e},s)),Ve(i.pipe(W(n))))})}function fs(e,{viewport$:t,header$:r}){return Er(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=de(e);return{active:n>0&&o>=n}}),ne("active"))}function ci(e,t){return H(()=>{let r=new T;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=ue(".md-content h1");return typeof o=="undefined"?y:fs(o,t).pipe(O(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))})}function pi(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),Y()),n=o.pipe(b(()=>Le(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ne("bottom"))));return z([o,n,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:p}}])=>(p=Math.max(0,p-Math.max(0,s-c,i)-Math.max(0,p+c-a)),{offset:s-i,height:p,active:s-i<=c})),Y((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function us(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return $(...e).pipe(J(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),Z(1))}function li(e){let t=M("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Wt("(prefers-color-scheme: light)");return H(()=>{let i=new T;return i.subscribe(s=>{if(document.body.setAttribute("data-md-color-switching",""),s.color.media==="(prefers-color-scheme)"){let a=matchMedia("(prefers-color-scheme: light)"),c=document.querySelector(a.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");s.color.scheme=c.getAttribute("data-md-color-scheme"),s.color.primary=c.getAttribute("data-md-color-primary"),s.color.accent=c.getAttribute("data-md-color-accent")}for(let[a,c]of Object.entries(s.color))document.body.setAttribute(`data-md-color-${a}`,c);for(let a=0;as.key==="Enter"),te(i,(s,a)=>a)).subscribe(({index:s})=>{s=(s+1)%t.length,t[s].click(),t[s].focus()}),i.pipe(m(()=>{let s=Ce("header"),a=window.getComputedStyle(s);return o.content=a.colorScheme,a.backgroundColor.match(/\d+/g).map(c=>(+c).toString(16).padStart(2,"0")).join("")})).subscribe(s=>r.content=`#${s}`),i.pipe(xe(pe)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),us(t).pipe(W(n.pipe(Ie(1))),vt(),O(s=>i.next(s)),A(()=>i.complete()),m(s=>P({ref:e},s)))})}function mi(e,{progress$:t}){return H(()=>{let r=new T;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(O(o=>r.next({value:o})),A(()=>r.complete()),m(o=>({ref:e,value:o})))})}function fi(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function ds(e,t){let r=new Map;for(let o of M("url",e)){let n=j("loc",o),i=[fi(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let s of M("[rel=alternate]",o)){let a=s.getAttribute("href");a!=null&&i.push(fi(new URL(a),t))}}return r}function kt(e){return En(new URL("sitemap.xml",e)).pipe(m(t=>ds(t,new URL(e))),ve(()=>$(new Map)),le())}function ui({document$:e}){let t=new Map;e.pipe(b(()=>M("link[rel=alternate]")),m(r=>new URL(r.href)),g(r=>!t.has(r.toString())),J(r=>kt(r).pipe(m(o=>[r,o]),ve(()=>y)))).subscribe(([r,o])=>{t.set(r.toString().replace(/\/$/,""),o)}),h(document.body,"click").pipe(g(r=>!r.metaKey&&!r.ctrlKey),b(r=>{if(r.target instanceof Element){let o=r.target.closest("a");if(o&&!o.target){let n=[...t].find(([f])=>o.href.startsWith(`${f}/`));if(typeof n=="undefined")return y;let[i,s]=n,a=we();if(a.href.startsWith(i))return y;let c=Te(),p=a.href.replace(c.base,"");p=`${i}/${p}`;let l=s.has(p.split("#")[0])?new URL(p,c.base):new URL(i);return r.preventDefault(),$(l)}}return y})).subscribe(r=>st(r,!0))}var co=$t(ao());function hs(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function di({alert$:e}){co.default.isSupported()&&new F(t=>{new co.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||hs(j(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(O(t=>{t.trigger.focus()}),m(()=>Me("clipboard.copied"))).subscribe(e)}function hi(e,t){if(!(e.target instanceof Element))return y;let r=e.target.closest("a");if(r===null)return y;if(r.target||e.metaKey||e.ctrlKey)return y;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),$(r)):y}function bi(e){let t=new Map;for(let r of M(":scope > *",e.head))t.set(r.outerHTML,r);return t}function vi(e){for(let t of M("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return $(e)}function bs(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...V("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=ue(o),i=ue(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=bi(document);for(let[o,n]of bi(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Ce("container");return Ke(M("script",r)).pipe(b(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new F(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),y}),oe(),ae(document))}function gi({sitemap$:e,location$:t,viewport$:r,progress$:o}){if(location.protocol==="file:")return y;$(document).subscribe(vi);let n=h(document.body,"click").pipe(Pe(e),b(([a,c])=>hi(a,c)),m(({href:a})=>new URL(a)),le()),i=h(window,"popstate").pipe(m(we),le());n.pipe(te(r)).subscribe(([a,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",a)}),L(n,i).subscribe(t);let s=t.pipe(ne("pathname"),b(a=>xr(a,{progress$:o}).pipe(ve(()=>(st(a,!0),y)))),b(vi),b(bs),le());return L(s.pipe(te(t,(a,c)=>c)),s.pipe(b(()=>t),ne("hash")),t.pipe(Y((a,c)=>a.pathname===c.pathname&&a.hash===c.hash),b(()=>n),O(()=>history.back()))).subscribe(a=>{var c,p;history.state!==null||!a.hash?window.scrollTo(0,(p=(c=history.state)==null?void 0:c.y)!=null?p:0):(history.scrollRestoration="auto",gn(a.hash),history.scrollRestoration="manual")}),t.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),r.pipe(ne("offset"),Ae(100)).subscribe(({offset:a})=>{history.replaceState(a,"")}),V("navigation.instant.prefetch")&&L(h(document.body,"mousemove"),h(document.body,"focusin")).pipe(Pe(e),b(([a,c])=>hi(a,c)),Ae(25),Qr(({href:a})=>a),hr(a=>{let c=document.createElement("link");return c.rel="prefetch",c.href=a.toString(),document.head.appendChild(c),h(c,"load").pipe(m(()=>c),Ee(1))})).subscribe(a=>a.remove()),s}var yi=$t(ro());function xi(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,s)=>`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").replace(/&/g,"&").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(0,yi.default)(s).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function zt(e){return e.type===1}function Sr(e){return e.type===3}function Ei(e,t){let r=Mn(e);return L($(location.protocol!=="file:"),Je("search")).pipe(Re(o=>o),b(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:V("search.suggest")}}})),r}function wi(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=po(n))==null?void 0:l.pathname;if(i===void 0)return;let s=ys(o.pathname,i);if(s===void 0)return;let a=Es(t.keys());if(!t.has(a))return;let c=po(s,a);if(!c||!t.has(c.href))return;let p=po(s,r);if(p)return p.hash=o.hash,p.search=o.search,p}function po(e,t){try{return new URL(e,t)}catch(r){return}}function ys(e,t){if(e.startsWith(t))return e.slice(t.length)}function xs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oy)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:s,aliases:a})=>s===i||a.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),b(n=>h(document.body,"click").pipe(g(i=>!i.metaKey&&!i.ctrlKey),te(o),b(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&n.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&n.get(c)===s?y:(i.preventDefault(),$(new URL(c)))}}return y}),b(i=>kt(i).pipe(m(s=>{var a;return(a=wi({selectedVersionSitemap:s,selectedVersionBaseURL:i,currentLocation:we(),currentBaseURL:t.base}))!=null?a:i})))))).subscribe(n=>st(n,!0)),z([r,o]).subscribe(([n,i])=>{j(".md-header__topic").appendChild(Wn(n,i))}),e.pipe(b(()=>o)).subscribe(n=>{var a;let i=new URL(t.base),s=__md_get("__outdated",sessionStorage,i);if(s===null){s=!0;let c=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(c)||(c=[c]);e:for(let p of c)for(let l of n.aliases.concat(n.version))if(new RegExp(p,"i").test(l)){s=!1;break e}__md_set("__outdated",s,sessionStorage,i)}if(s)for(let c of me("outdated"))c.hidden=!1})}function ws(e,{worker$:t}){let{searchParams:r}=we();r.has("q")&&(at("search",!0),e.value=r.get("q"),e.focus(),Je("search").pipe(Re(i=>!i)).subscribe(()=>{let i=we();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=Ye(e),n=L(t.pipe(Re(zt)),h(e,"keyup"),o).pipe(m(()=>e.value),Y());return z([n,o]).pipe(m(([i,s])=>({value:i,focus:s})),Z(1))}function Si(e,{worker$:t}){let r=new T,o=r.pipe(oe(),ae(!0));z([t.pipe(Re(zt)),r],(i,s)=>s).pipe(ne("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ne("focus")).subscribe(({focus:i})=>{i&&at("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=j("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ws(e,{worker$:t}).pipe(O(i=>r.next(i)),A(()=>r.complete()),m(i=>P({ref:e},i)),Z(1))}function Oi(e,{worker$:t,query$:r}){let o=new T,n=un(e.parentElement).pipe(g(Boolean)),i=e.parentElement,s=j(":scope > :first-child",e),a=j(":scope > :last-child",e);Je("search").subscribe(l=>{a.setAttribute("role",l?"list":"presentation"),a.hidden=!l}),o.pipe(te(r),Gr(t.pipe(Re(zt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:s.textContent=f.length?Me("search.result.none"):Me("search.result.placeholder");break;case 1:s.textContent=Me("search.result.one");break;default:let u=br(l.length);s.textContent=Me("search.result.other",u)}});let c=o.pipe(O(()=>a.innerHTML=""),b(({items:l})=>L($(...l.slice(0,10)),$(...l.slice(10)).pipe(ot(4),Xr(n),b(([f])=>f)))),m(Fn),le());return c.subscribe(l=>a.appendChild(l)),c.pipe(J(l=>{let f=ue("details",l);return typeof f=="undefined"?y:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(g(Sr),m(({data:l})=>l)).pipe(O(l=>o.next(l)),A(()=>o.complete()),m(l=>P({ref:e},l)))}function Ts(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=we();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function Li(e,t){let r=new T,o=r.pipe(oe(),ae(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),Ts(e,t).pipe(O(n=>r.next(n)),A(()=>r.complete()),m(n=>P({ref:e},n)))}function Mi(e,{worker$:t,keyboard$:r}){let o=new T,n=Ce("search-query"),i=L(h(n,"keydown"),h(n,"focus")).pipe(xe(pe),m(()=>n.value),Y());return o.pipe(Pe(i),m(([{suggest:a},c])=>{let p=c.split(/([\s-]+)/);if(a!=null&&a.length&&p[p.length-1]){let l=a[a.length-1];l.startsWith(p[p.length-1])&&(p[p.length-1]=l)}else p.length=0;return p})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(g(({mode:a})=>a==="search")).subscribe(a=>{a.type==="ArrowRight"&&e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText)}),t.pipe(g(Sr),m(({data:a})=>a)).pipe(O(a=>o.next(a)),A(()=>o.complete()),m(()=>({ref:e})))}function _i(e,{index$:t,keyboard$:r}){let o=Te();try{let n=Ei(o.search,t),i=Ce("search-query",e),s=Ce("search-result",e);h(e,"click").pipe(g(({target:c})=>c instanceof Element&&!!c.closest("a"))).subscribe(()=>at("search",!1)),r.pipe(g(({mode:c})=>c==="search")).subscribe(c=>{let p=Ne();switch(c.type){case"Enter":if(p===i){let l=new Map;for(let f of M(":first-child [href]",s)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}c.claim()}break;case"Escape":case"Tab":at("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof p=="undefined")i.focus();else{let l=[i,...M(":not(details) > [href], summary, details[open] [href]",s)],f=Math.max(0,(Math.max(0,l.indexOf(p))+l.length+(c.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}c.claim();break;default:i!==Ne()&&i.focus()}}),r.pipe(g(({mode:c})=>c==="global")).subscribe(c=>{switch(c.type){case"f":case"s":case"/":i.focus(),i.select(),c.claim();break}});let a=Si(i,{worker$:n});return L(a,Oi(s,{worker$:n,query$:a})).pipe(Ve(...me("search-share",e).map(c=>Li(c,{query$:a})),...me("search-suggest",e).map(c=>Mi(c,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,tt}}function Ai(e,{index$:t,location$:r}){return z([t,r.pipe(Q(we()),g(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>xi(o.config)(n.searchParams.get("h"))),m(o=>{var s;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,p=o(c);p.length>c.length&&n.set(a,p)}for(let[a,c]of n){let{childNodes:p}=x("span",null,c);a.replaceWith(...Array.from(p))}return{ref:e,nodes:n}}))}function Ss(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(n,Math.max(0,a-i))-n,{height:s,locked:a>=i+n})),Y((i,s)=>i.height===s.height&&i.locked===s.locked))}function lo(e,o){var n=o,{header$:t}=n,r=vo(n,["header$"]);let i=j(".md-sidebar__scrollwrap",e),{y:s}=Be(i);return H(()=>{let a=new T,c=a.pipe(oe(),ae(!0)),p=a.pipe($e(0,ye));return p.pipe(te(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),p.pipe(Re()).subscribe(()=>{for(let l of M(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=de(f);f.scrollTo({top:u-d/2})}}}),fe(M("label[tabindex]",e)).pipe(J(l=>h(l,"click").pipe(xe(pe),m(()=>l),W(c)))).subscribe(l=>{let f=j(`[id="${l.htmlFor}"]`);j(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),V("content.tooltips")&&fe(M("abbr[title]",e)).pipe(J(l=>Xe(l,{viewport$})),W(c)).subscribe(),Ss(e,r).pipe(O(l=>a.next(l)),A(()=>a.complete()),m(l=>P({ref:e},l)))})}function Ci(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return rt(ze(`${r}/releases/latest`).pipe(ve(()=>y),m(o=>({version:o.tag_name})),Qe({})),ze(r).pipe(ve(()=>y),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Qe({}))).pipe(m(([o,n])=>P(P({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return ze(r).pipe(m(o=>({repositories:o.public_repos})),Qe({}))}}function ki(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return rt(ze(`${r}/releases/permalink/latest`).pipe(ve(()=>y),m(({tag_name:o})=>({version:o})),Qe({})),ze(r).pipe(ve(()=>y),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Qe({}))).pipe(m(([o,n])=>P(P({},o),n)))}function Hi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return Ci(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ki(r,o)}return y}var Os;function Ls(e){return Os||(Os=H(()=>{let t=__md_get("__source",sessionStorage);if(t)return $(t);if(me("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return y}return Hi(e.href).pipe(O(o=>__md_set("__source",o,sessionStorage)))}).pipe(ve(()=>y),g(t=>Object.keys(t).length>0),m(t=>({facts:t})),Z(1)))}function $i(e){let t=j(":scope > :last-child",e);return H(()=>{let r=new T;return r.subscribe(({facts:o})=>{t.appendChild(jn(o)),t.classList.add("md-source__repository--active")}),Ls(e).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function Ms(e,{viewport$:t,header$:r}){return Le(document.body).pipe(b(()=>Er(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ne("hidden"))}function Pi(e,t){return H(()=>{let r=new T;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(V("navigation.tabs.sticky")?$({hidden:!1}):Ms(e,t)).pipe(O(o=>r.next(o)),A(()=>r.complete()),m(o=>P({ref:e},o)))})}function _s(e,{viewport$:t,header$:r}){let o=new Map,n=M(".md-nav__link",e);for(let a of n){let c=decodeURIComponent(a.hash.substring(1)),p=ue(`[id="${c}"]`);typeof p!="undefined"&&o.set(a,p)}let i=r.pipe(ne("height"),m(({height:a})=>{let c=Ce("main"),p=j(":scope > :first-child",c);return a+.8*(p.offsetTop-c.offsetTop)}),le());return Le(document.body).pipe(ne("height"),b(a=>H(()=>{let c=[];return $([...o].reduce((p,[l,f])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=f.tagName;)c.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return p.set([...c=[...c,l]].reverse(),u)},new Map))}).pipe(m(c=>new Map([...c].sort(([,p],[,l])=>p-l))),Pe(i),b(([c,p])=>t.pipe(Ut(([l,f],{offset:{y:u},size:d})=>{let v=u+d.height>=Math.floor(a.height);for(;f.length;){let[,S]=f[0];if(S-p=u&&!v)f=[l.pop(),...f];else break}return[l,f]},[[],[...c]]),Y((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([a,c])=>({prev:a.map(([p])=>p),next:c.map(([p])=>p)})),Q({prev:[],next:[]}),ot(2,1),m(([a,c])=>a.prev.length{let i=new T,s=i.pipe(oe(),ae(!0));if(i.subscribe(({prev:a,next:c})=>{for(let[p]of c)p.classList.remove("md-nav__link--passed"),p.classList.remove("md-nav__link--active");for(let[p,[l]]of a.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",p===a.length-1)}),V("toc.follow")){let a=L(t.pipe(Ae(1),m(()=>{})),t.pipe(Ae(250),m(()=>"smooth")));i.pipe(g(({prev:c})=>c.length>0),Pe(o.pipe(xe(pe))),te(a)).subscribe(([[{prev:c}],p])=>{let[l]=c[c.length-1];if(l.offsetHeight){let f=vr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=de(f);f.scrollTo({top:u-d/2,behavior:p})}}})}return V("navigation.tracking")&&t.pipe(W(s),ne("offset"),Ae(250),Ie(1),W(n.pipe(Ie(1))),vt({delay:250}),te(i)).subscribe(([,{prev:a}])=>{let c=we(),p=a[a.length-1];if(p&&p.length){let[l]=p,{hash:f}=new URL(l.href);c.hash!==f&&(c.hash=f,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),_s(e,{viewport$:t,header$:r}).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))})}function As(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:s}})=>s),ot(2,1),m(([s,a])=>s>a&&a>0),Y()),i=r.pipe(m(({active:s})=>s));return z([i,n]).pipe(m(([s,a])=>!(s&&a)),Y(),W(o.pipe(Ie(1))),ae(!0),vt({delay:250}),m(s=>({hidden:s})))}function Ii(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new T,s=i.pipe(oe(),ae(!0));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(s),ne("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),h(e,"click").subscribe(a=>{a.preventDefault(),window.scrollTo({top:0})}),As(e,{viewport$:t,main$:o,target$:n}).pipe(O(a=>i.next(a)),A(()=>i.complete()),m(a=>P({ref:e},a)))}function Fi({document$:e,viewport$:t}){e.pipe(b(()=>M(".md-ellipsis")),J(r=>mt(r).pipe(W(e.pipe(Ie(1))),g(o=>o),m(()=>r),Ee(1))),g(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,V("content.tooltips")?Xe(n,{viewport$:t}).pipe(W(e.pipe(Ie(1))),A(()=>n.removeAttribute("title"))):y})).subscribe(),V("content.tooltips")&&e.pipe(b(()=>M(".md-status")),J(r=>Xe(r,{viewport$:t}))).subscribe()}function ji({document$:e,tablet$:t}){e.pipe(b(()=>M(".md-toggle--indeterminate")),O(r=>{r.indeterminate=!0,r.checked=!1}),J(r=>h(r,"change").pipe(Jr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),te(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function Cs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ui({document$:e}){e.pipe(b(()=>M("[data-md-scrollfix]")),O(t=>t.removeAttribute("data-md-scrollfix")),g(Cs),J(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Wi({viewport$:e,tablet$:t}){z([Je("search"),t]).pipe(m(([r,o])=>r&&!o),b(r=>$(r).pipe(nt(r?400:100))),te(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ks(){return location.protocol==="file:"?_t(`${new URL("search/search_index.js",Or.base)}`).pipe(m(()=>__index),Z(1)):ze(new URL("search/search_index.json",Or.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ct=an(),Kt=bn(),Ht=yn(Kt),mo=hn(),ke=Ln(),Lr=Wt("(min-width: 60em)"),Vi=Wt("(min-width: 76.25em)"),Ni=xn(),Or=Te(),zi=document.forms.namedItem("search")?ks():tt,fo=new T;di({alert$:fo});ui({document$:ct});var uo=new T,qi=kt(Or.base);V("navigation.instant")&&gi({sitemap$:qi,location$:Kt,viewport$:ke,progress$:uo}).subscribe(ct);var Di;((Di=Or.version)==null?void 0:Di.provider)==="mike"&&Ti({document$:ct});L(Kt,Ht).pipe(nt(125)).subscribe(()=>{at("drawer",!1),at("search",!1)});mo.pipe(g(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=ue("link[rel=prev]");typeof t!="undefined"&&st(t);break;case"n":case".":let r=ue("link[rel=next]");typeof r!="undefined"&&st(r);break;case"Enter":let o=Ne();o instanceof HTMLLabelElement&&o.click()}});Fi({viewport$:ke,document$:ct});ji({document$:ct,tablet$:Lr});Ui({document$:ct});Wi({viewport$:ke,tablet$:Lr});var ft=ai(Ce("header"),{viewport$:ke}),qt=ct.pipe(m(()=>Ce("main")),b(e=>pi(e,{viewport$:ke,header$:ft})),Z(1)),Hs=L(...me("consent").map(e=>An(e,{target$:Ht})),...me("dialog").map(e=>ni(e,{alert$:fo})),...me("palette").map(e=>li(e)),...me("progress").map(e=>mi(e,{progress$:uo})),...me("search").map(e=>_i(e,{index$:zi,keyboard$:mo})),...me("source").map(e=>$i(e))),$s=H(()=>L(...me("announce").map(e=>_n(e)),...me("content").map(e=>oi(e,{sitemap$:qi,viewport$:ke,target$:Ht,print$:Ni})),...me("content").map(e=>V("search.highlight")?Ai(e,{index$:zi,location$:Kt}):y),...me("header").map(e=>si(e,{viewport$:ke,header$:ft,main$:qt})),...me("header-title").map(e=>ci(e,{viewport$:ke,header$:ft})),...me("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?eo(Vi,()=>lo(e,{viewport$:ke,header$:ft,main$:qt})):eo(Lr,()=>lo(e,{viewport$:ke,header$:ft,main$:qt}))),...me("tabs").map(e=>Pi(e,{viewport$:ke,header$:ft})),...me("toc").map(e=>Ri(e,{viewport$:ke,header$:ft,main$:qt,target$:Ht})),...me("top").map(e=>Ii(e,{viewport$:ke,header$:ft,main$:qt,target$:Ht})))),Ki=ct.pipe(b(()=>$s),Ve(Hs),Z(1));Ki.subscribe();window.document$=ct;window.location$=Kt;window.target$=Ht;window.keyboard$=mo;window.viewport$=ke;window.tablet$=Lr;window.screen$=Vi;window.print$=Ni;window.alert$=fo;window.progress$=uo;window.component$=Ki;})(); +//# sourceMappingURL=bundle.79ae519e.min.js.map + diff --git a/0.48/assets/javascripts/bundle.79ae519e.min.js.map b/0.48/assets/javascripts/bundle.79ae519e.min.js.map new file mode 100644 index 0000000..5cf0289 --- /dev/null +++ b/0.48/assets/javascripts/bundle.79ae519e.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinct.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/exhaustMap.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/link/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/alternate/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2025 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n fetchSitemap,\n setupAlternate,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 60em)\")\nconst screen$ = watchMedia(\"(min-width: 76.25em)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up language selector */\nsetupAlternate({ document$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up sitemap for instant navigation and previews */\nconst sitemap$ = fetchSitemap(config.base)\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ sitemap$, location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { sitemap$, viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n */\nexport class Subscription implements SubscriptionLike {\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param value The `next` value.\n */\n next(value: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param err The `error` exception.\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as ((value: T) => void) | undefined,\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent.\n * @param subscriber The stopped subscriber.\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @param subscribe The function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @param subscribe the subscriber function to be passed to the Observable constructor\n * @return A new observable.\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @param operator the operator defining the operation to take on the observable\n * @return A new observable with the Operator applied.\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param observerOrNext Either an {@link Observer} with some or all callback methods,\n * or the `next` handler that is called for each value emitted from the subscribed Observable.\n * @param error A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param complete A handler for a terminal event resulting from successful completion.\n * @return A subscription reference to the registered handlers.\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next A handler for each value emitted by the observable.\n * @return A promise that either resolves on observable completion or\n * rejects with the handled error.\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @return This instance of the observable.\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe
    (op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n *\n * @return The Observable result of all the operators having been called\n * in the order they were passed in.\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return Observable that this Subject casts to.\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param _bufferSize The size of the buffer to replay on subscription\n * @param _windowTime The amount of time the buffered items will stay buffered\n * @param _timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param state Some contextual data that the `work` function uses when called by the\n * Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is implicit\n * and defined by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param work A function representing a task, or some unit of work to be\n * executed by the Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is\n * implicit and defined by the Scheduler itself.\n * @param state Some contextual data that the `work` function uses when called\n * by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && id === scheduler._scheduled && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n let flushId;\n if (action) {\n flushId = action.id;\n } else {\n flushId = this._scheduled;\n this._scheduled = undefined;\n }\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:

    \n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an